              ))
          elif isinstance(field, TimeField) and (
                  isinstance(output_field, DateTimeField) or copy.kind in ('year', 'quarter', 'month', 'day', 'date')):
              raise ValueError("Cannot truncate TimeField '%s' to %s. " % (
                  field.name, output_field.__class__.__name__ if explicit_output_field else 'DateTimeField'
              ))
          return copy
  
      def convert_value(self, value, expression, connection):
          if isinstance(self.output_field, DateTimeField):
 
</s> remove                 field.name, output_field.__class__.__name__ if explicit_output_field else 'DateTimeField'
 </s> add                 field.name, output_field.__class__.__name__ if has_explicit_output_field else 'DateTimeField' </s> remove         output_field = copy.output_field
        explicit_output_field = field.__class__ != copy.output_field.__class__
 </s> add         class_output_field = self.__class__.output_field if isinstance(self.__class__.output_field, Field) else None
        output_field = class_output_field or copy.output_field
        has_explicit_output_field = class_output_field or field.__class__ is not copy.output_field.__class__ </s> remove     @cached_property
    def output_field(self):
        return IntegerField()

 </s> add  </s> remove 
    def __init__(self, y, x, filter=None):
        super().__init__(y=y, x=x, output_field=IntegerField(), filter=filter)
 </s> add     output_field = IntegerField() </s> remove 
    def __init__(self, *args, output_field=None, **kwargs):
        super().__init__(*args, output_field=TimeField(), **kwargs)
 </s> add     output_field = TimeField()
                field.name, output_field.__class__.__name__ if has_explicit_output_field else 'DateTimeField'
              ))
          elif isinstance(field, TimeField) and (
                  isinstance(output_field, DateTimeField) or copy.kind in ('year', 'quarter', 'month', 'day', 'date')):
              raise ValueError("Cannot truncate TimeField '%s' to %s. " % (
                field.name, output_field.__class__.__name__ if has_explicit_output_field else 'DateTimeField'
              ))
          return copy
  
      def convert_value(self, value, expression, connection):
          if isinstance(self.output_field, DateTimeField):
keep keep keep keep replace keep keep keep keep keep
 Fixed #28492 -- Defined default output_field of expressions at the class level.

This wasn't possible when settings were accessed during Field initialization
time as our test suite setup script was triggering imports of expressions
before settings were configured. 
django/db/models/functions/datetime.py