Fixed #18333 - Quoted annotated column names
This commit is contained in:
parent
77f6b468e5
commit
9a041807fc
|
@ -79,7 +79,7 @@ class Aggregate(object):
|
||||||
elif isinstance(self.col, (list, tuple)):
|
elif isinstance(self.col, (list, tuple)):
|
||||||
field_name = '.'.join(qn(c) for c in self.col)
|
field_name = '.'.join(qn(c) for c in self.col)
|
||||||
else:
|
else:
|
||||||
field_name = self.col
|
field_name = qn(self.col)
|
||||||
|
|
||||||
substitutions = {
|
substitutions = {
|
||||||
'function': self.sql_function,
|
'function': self.sql_function,
|
||||||
|
|
|
@ -1114,3 +1114,13 @@ class AggregationTests(TestCase):
|
||||||
self.assertQuerysetEqual(
|
self.assertQuerysetEqual(
|
||||||
qs, ['Sams Teach Yourself Django in 24 Hours'],
|
qs, ['Sams Teach Yourself Django in 24 Hours'],
|
||||||
lambda b: b.name)
|
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),
|
||||||
|
})
|
||||||
|
|
Loading…
Reference in New Issue