1
0
mirror of https://github.com/django/django.git synced 2025-10-24 06:06:09 +00:00

Fixed #32007 -- Fixed queryset crash with Q() annotation and aggregation.

Thanks Gordon Wrigley for the report.

Regression in 8a6df55f2d.
This commit is contained in:
Mariusz Felisiak
2020-09-15 11:40:59 +02:00
committed by GitHub
parent 7be6a6a4d6
commit eaf9764d3b
3 changed files with 17 additions and 0 deletions

View File

@@ -183,6 +183,17 @@ class NonAggregateAnnotationTestCase(TestCase):
self.assertEqual(book.combined, 13410.0)
self.assertEqual(book.rating_count, 1)
def test_q_expression_annotation_with_aggregation(self):
book = Book.objects.filter(isbn='159059725').annotate(
isnull_pubdate=ExpressionWrapper(
Q(pubdate__isnull=True),
output_field=BooleanField(),
),
rating_count=Count('rating'),
).first()
self.assertEqual(book.isnull_pubdate, False)
self.assertEqual(book.rating_count, 1)
def test_aggregate_over_annotation(self):
agg = Author.objects.annotate(other_age=F('age')).aggregate(otherage_sum=Sum('other_age'))
other_agg = Author.objects.aggregate(age_sum=Sum('age'))