mirror of
https://github.com/django/django.git
synced 2025-08-04 19:08:28 +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:
parent
7be6a6a4d6
commit
eaf9764d3b
3 changed files with 17 additions and 0 deletions
|
@ -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'))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue