mirror of https://github.com/django/django.git
Fixed #34024 -- Fixed crash when aggregating querysets with Q objects annotations.
This reverts b64db05b9c
.
It was reasonable to assume it was unnecessary code as there were
no failing tests upon its removal. This commit adds the necessary
regression tests for the failing condition identified in #34024
alongside the original tests added in the PR for which
WhereNode.is_summary was introduced.
This commit is contained in:
parent
37a13cc92d
commit
1674c70525
|
@ -244,6 +244,10 @@ class WhereNode(tree.Node):
|
|||
def contains_over_clause(self):
|
||||
return self._contains_over_clause(self)
|
||||
|
||||
@property
|
||||
def is_summary(self):
|
||||
return any(child.is_summary for child in self.children)
|
||||
|
||||
@staticmethod
|
||||
def _resolve_leaf(expr, query, *args, **kwargs):
|
||||
if hasattr(expr, "resolve_expression"):
|
||||
|
|
|
@ -554,6 +554,9 @@ class AggregationTests(TestCase):
|
|||
325,
|
||||
)
|
||||
|
||||
def test_q_annotation_aggregate(self):
|
||||
self.assertEqual(Book.objects.annotate(has_pk=Q(pk__isnull=False)).count(), 6)
|
||||
|
||||
def test_decimal_aggregate_annotation_filter(self):
|
||||
"""
|
||||
Filtering on an aggregate annotation with Decimal values should work.
|
||||
|
|
Loading…
Reference in New Issue