Commit 9a041807 authored by Michael Manfre's avatar Michael Manfre Committed by Tim Graham
Browse files

Fixed #18333 - Quoted annotated column names

parent 77f6b468
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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,
+10 −0
Original line number Diff line number Diff line
@@ -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),
        })