diff --git a/django/db/models/functions/comparison.py b/django/db/models/functions/comparison.py index 44f269369dc..ff0f0e09d0f 100644 --- a/django/db/models/functions/comparison.py +++ b/django/db/models/functions/comparison.py @@ -1,5 +1,5 @@ """Database functions that do comparisons or type conversions.""" -from django.db.models import Func +from django.db.models.expressions import Func class Cast(Func): diff --git a/django/db/models/functions/datetime.py b/django/db/models/functions/datetime.py index 51be8408e4e..7dec5c66904 100644 --- a/django/db/models/functions/datetime.py +++ b/django/db/models/functions/datetime.py @@ -1,12 +1,12 @@ from datetime import datetime from django.conf import settings -from django.db.models import ( - DateField, DateTimeField, DurationField, Field, Func, IntegerField, - TimeField, Transform, fields, +from django.db.models.expressions import Func +from django.db.models.fields import ( + DateField, DateTimeField, DurationField, Field, IntegerField, TimeField, ) from django.db.models.lookups import ( - YearExact, YearGt, YearGte, YearLt, YearLte, + Transform, YearExact, YearGt, YearGte, YearLt, YearLte, ) from django.utils import timezone @@ -157,7 +157,7 @@ ExtractIsoYear.register_lookup(YearLte) class Now(Func): template = 'CURRENT_TIMESTAMP' - output_field = fields.DateTimeField() + output_field = DateTimeField() def as_postgresql(self, compiler, connection, **extra_context): # PostgreSQL's CURRENT_TIMESTAMP means "the time at the start of the diff --git a/django/db/models/functions/math.py b/django/db/models/functions/math.py index 2df7ecf4568..c8760652b44 100644 --- a/django/db/models/functions/math.py +++ b/django/db/models/functions/math.py @@ -1,10 +1,10 @@ import math import sys -from django.db.models import ( - DecimalField, FloatField, Func, IntegerField, Transform, -) +from django.db.models.expressions import Func +from django.db.models.fields import DecimalField, FloatField, IntegerField from django.db.models.functions import Cast +from django.db.models.lookups import Transform class DecimalInputMixin: diff --git a/django/db/models/functions/text.py b/django/db/models/functions/text.py index 3c3eade6469..db6d0c6c580 100644 --- a/django/db/models/functions/text.py +++ b/django/db/models/functions/text.py @@ -1,5 +1,7 @@ -from django.db.models import Func, IntegerField, Transform, Value, fields +from django.db.models.expressions import Func, Value +from django.db.models.fields import IntegerField from django.db.models.functions import Coalesce +from django.db.models.lookups import Transform class BytesToCharFieldConversionMixin: @@ -124,7 +126,7 @@ class Length(Transform): """Return the number of characters in the expression.""" function = 'LENGTH' lookup_name = 'length' - output_field = fields.IntegerField() + output_field = IntegerField() def as_mysql(self, compiler, connection, **extra_context): return super().as_sql(compiler, connection, function='CHAR_LENGTH', **extra_context) @@ -207,7 +209,7 @@ class StrIndex(Func): """ function = 'INSTR' arity = 2 - output_field = fields.IntegerField() + output_field = IntegerField() def as_postgresql(self, compiler, connection, **extra_context): return super().as_sql(compiler, connection, function='STRPOS', **extra_context) diff --git a/django/db/models/functions/window.py b/django/db/models/functions/window.py index 4ee01ec803e..84b2b24ffa7 100644 --- a/django/db/models/functions/window.py +++ b/django/db/models/functions/window.py @@ -1,4 +1,5 @@ -from django.db.models import FloatField, Func, IntegerField +from django.db.models.expressions import Func +from django.db.models.fields import FloatField, IntegerField __all__ = [ 'CumeDist', 'DenseRank', 'FirstValue', 'Lag', 'LastValue', 'Lead',