From 2b1bb716ff7552bf9f98653c172a573c380e4798 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Mon, 16 Feb 2009 12:38:11 +0000 Subject: [PATCH] Fixed #10248 -- Corrected handling of the GROUP BY clause when using a DateQuerySet. Thanks to Alex Gaynor for the report and patch. git-svn-id: http://code.djangoproject.com/svn/django/trunk@9839 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/db/models/sql/query.py | 2 +- tests/regressiontests/aggregation_regress/models.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py index f868347960..629afa29e7 100644 --- a/django/db/models/sql/query.py +++ b/django/db/models/sql/query.py @@ -389,7 +389,7 @@ class BaseQuery(object): # other than MySQL), then any fields mentioned in the # ordering clause needs to be in the group by clause. if not self.connection.features.allows_group_by_pk: - grouping.extend([col for col in ordering_group_by + grouping.extend([str(col) for col in ordering_group_by if col not in grouping]) else: ordering = self.connection.ops.force_no_ordering() diff --git a/tests/regressiontests/aggregation_regress/models.py b/tests/regressiontests/aggregation_regress/models.py index 51648dada6..de913a0a9f 100644 --- a/tests/regressiontests/aggregation_regress/models.py +++ b/tests/regressiontests/aggregation_regress/models.py @@ -213,6 +213,10 @@ FieldError: Cannot resolve keyword 'foo' into field. Choices are: authors, conta >>> books.all() [, , , , , ] +# Regression for #10248 - Annotations work with DateQuerySets +>>> Book.objects.annotate(num_authors=Count('authors')).filter(num_authors=2).dates('pubdate', 'day') +[datetime.datetime(1995, 1, 15, 0, 0), datetime.datetime(2007, 12, 6, 0, 0)] + """ }