Fixed #18333 - Quoted annotated column names

This commit is contained in:
Michael Manfre 2013-09-23 20:52:58 -04:00 committed by Tim Graham
parent 77f6b468e5
commit 9a041807fc
2 changed files with 11 additions and 1 deletions

View File

@ -79,7 +79,7 @@ class Aggregate(object):
elif isinstance(self.col, (list, tuple)):
field_name = '.'.join(qn(c) for c in self.col)
else:
field_name = self.col
field_name = qn(self.col)
substitutions = {
'function': self.sql_function,

View File

@ -1114,3 +1114,13 @@ class AggregationTests(TestCase):
self.assertQuerysetEqual(
qs, ['Sams Teach Yourself Django in 24 Hours'],
lambda b: b.name)
def test_annotate_reserved_word(self):
"""
Regression #18333 - Ensure annotated column name is properly quoted.
"""
vals = Book.objects.annotate(select=Count('authors__id')).aggregate(Sum('select'), Avg('select'))
self.assertEqual(vals, {
'select__sum': 10,
'select__avg': Approximate(1.666, places=2),
})