summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-06-26 07:51:19 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-06-26 07:51:19 +0000
commit279fc8599b72d56729871f241d6e91dc2d409158 (patch)
tree457890f89d7c7cbfd184842bc8eeca73bd4ed5e2 /django
parentd2ce1df08fcf7b17897e9576028d19bbd2fdfa93 (diff)
Fixed #7105 -- Fixed dates() queries in light of model inheritance.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@7763 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
-rw-r--r--django/db/models/query.py2
-rw-r--r--django/db/models/sql/subqueries.py8
2 files changed, 6 insertions, 4 deletions
diff --git a/django/db/models/query.py b/django/db/models/query.py
index 2e9752288e..eff4c57a7c 100644
--- a/django/db/models/query.py
+++ b/django/db/models/query.py
@@ -688,7 +688,7 @@ class DateQuerySet(QuerySet):
"""
self.query = self.query.clone(klass=sql.DateQuery, setup=True)
self.query.select = []
- self.query.add_date_select(self._field.column, self._kind, self._order)
+ self.query.add_date_select(self._field, self._kind, self._order)
if self._field.null:
self.query.add_filter(('%s__isnull' % self._field.name, False))
diff --git a/django/db/models/sql/subqueries.py b/django/db/models/sql/subqueries.py
index 28436abede..0bb741d706 100644
--- a/django/db/models/sql/subqueries.py
+++ b/django/db/models/sql/subqueries.py
@@ -357,12 +357,14 @@ class DateQuery(Query):
date = typecast_timestamp(str(date))
yield date
- def add_date_select(self, column, lookup_type, order='ASC'):
+ def add_date_select(self, field, lookup_type, order='ASC'):
"""
Converts the query into a date extraction query.
"""
- alias = self.join((None, self.model._meta.db_table, None, None))
- select = Date((alias, column), lookup_type,
+ result = self.setup_joins([field.name], self.get_meta(),
+ self.get_initial_alias(), False)
+ alias = result[3][-1]
+ select = Date((alias, field.column), lookup_type,
self.connection.ops.date_trunc_sql)
self.select = [select]
self.select_fields = [None]