  
  
  class Now(Func):
      template = 'CURRENT_TIMESTAMP'
  
      def __init__(self, output_field=None, **extra):
          if output_field is None:
              output_field = fields.DateTimeField()
          super().__init__(output_field=output_field, **extra)
  
      def as_postgresql(self, compiler, connection):
          # Postgres' CURRENT_TIMESTAMP means "the time at the start of the
          # transaction". We use STATEMENT_TIMESTAMP to be cross-compatible with
          # other databases.
 
</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 
    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() </s> remove 
    def __init__(self, expression, *, output_field=None, **extra):
        super().__init__(expression, output_field=output_field or fields.IntegerField(), **extra)
 </s> add     output_field = fields.IntegerField() </s> remove 
    def __init__(self, string, substring, **extra):
        """
        string: the name of a field, or an expression returning a string
        substring: the name of a field, or an expression returning a string
        """
        super().__init__(string, substring, output_field=fields.IntegerField(), **extra)
 </s> add     output_field = fields.IntegerField() </s> remove 
    def __init__(self, *args, output_field=None, **kwargs):
        super().__init__(*args, output_field=DateField(), **kwargs)
 </s> add     output_field = DateField()
    output_field = fields.DateTimeField()
  
  
  class Now(Func):
      template = 'CURRENT_TIMESTAMP'
    output_field = fields.DateTimeField()
    output_field = fields.DateTimeField()
    output_field = fields.DateTimeField()
    output_field = fields.DateTimeField()
    output_field = fields.DateTimeField()
  
      def as_postgresql(self, compiler, connection):
          # Postgres' CURRENT_TIMESTAMP means "the time at the start of the
          # transaction". We use STATEMENT_TIMESTAMP to be cross-compatible with
          # other databases.
keep keep keep keep replace replace replace replace 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/base.py