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
This commit is contained in:
Russell Keith-Magee 2009-02-16 12:38:11 +00:00
parent fb64ea7896
commit 2b1bb716ff
2 changed files with 5 additions and 1 deletions

View File

@ -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()

View File

@ -213,6 +213,10 @@ FieldError: Cannot resolve keyword 'foo' into field. Choices are: authors, conta
>>> books.all()
[<Book: Artificial Intelligence: A Modern Approach>, <Book: Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp>, <Book: Practical Django Projects>, <Book: Python Web Development with Django>, <Book: Sams Teach Yourself Django in 24 Hours>, <Book: The Definitive Guide to Django: Web Development Done Right>]
# 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)]
"""
}