  
  
  class Extract(TimezoneMixin, Transform):
      lookup_name = None
  
      def __init__(self, expression, lookup_name=None, tzinfo=None, **extra):
          if self.lookup_name is None:
              self.lookup_name = lookup_name
          if self.lookup_name is None:
              raise ValueError('lookup_name must be provided')
 
</s> remove     output_field_class = TextField
 </s> add     output_field = TextField() </s> remove 
    def __init__(self, output_field=None, **extra):
        if output_field is None:
            output_field = DateTimeField()
        super().__init__(output_field=output_field, **extra)
 </s> add     output_field = DateTimeField() </s> remove     output_field_class = TextField
 </s> add     output_field = TextField() </s> remove     output_field_class = TextField
 </s> add     output_field = TextField() </s> remove 
    def __init__(self, output_field=None, **extra):
        if output_field is None:
            output_field = UUIDField()
        super().__init__(output_field=output_field, **extra)
 </s> add     output_field = UUIDField()
    output_field = IntegerField()
  
  
  class Extract(TimezoneMixin, Transform):
      lookup_name = None
    output_field = IntegerField()
  
      def __init__(self, expression, lookup_name=None, tzinfo=None, **extra):
          if self.lookup_name is None:
              self.lookup_name = lookup_name
          if self.lookup_name is None:
              raise ValueError('lookup_name must be provided')
keep keep keep add keep 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