diff options
| author | Anssi Kääriäinen <akaariai@gmail.com> | 2014-01-20 05:02:29 +0200 |
|---|---|---|
| committer | Anssi Kääriäinen <akaariai@gmail.com> | 2014-01-20 10:52:58 +0200 |
| commit | 1c360dbbf56b76e1df7c945458ae2987306fcfcd (patch) | |
| tree | 346419841a3d5f98932d8d1bd1ecdd94edf0b39c | |
| parent | b86321e9a42652909d9c3373f3b97fcc9ed2c290 (diff) | |
Use date_extract_sql() for DateFields
Refs #21821
| -rw-r--r-- | django/db/models/lookups.py | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/django/db/models/lookups.py b/django/db/models/lookups.py index d73418b5af..ce6d157f82 100644 --- a/django/db/models/lookups.py +++ b/django/db/models/lookups.py @@ -281,12 +281,15 @@ default_lookups['range'] = Range class DateLookup(BuiltinLookup): - def process_lhs(self, qn, connection, lhs=None): + from django.db.models import DateTimeField lhs, params = super(DateLookup, self).process_lhs(qn, connection, lhs) - tzname = timezone.get_current_timezone_name() if settings.USE_TZ else None - sql, tz_params = connection.ops.datetime_extract_sql(self.extract_type, lhs, tzname) - return connection.ops.lookup_cast(self.lookup_name) % sql, tz_params + if isinstance(self.lhs.output_type, DateTimeField): + tzname = timezone.get_current_timezone_name() if settings.USE_TZ else None + sql, tz_params = connection.ops.datetime_extract_sql(self.extract_type, lhs, tzname) + return connection.ops.lookup_cast(self.lookup_name) % sql, tz_params + else: + return connection.ops.date_extract_sql(self.lookup_name, lhs), [] def get_rhs_op(self, connection, rhs): return '= %s' % rhs |
