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)] + """ }