summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorAlexander Kerkum <alex.kerkum@waarneming.nl>2022-09-16 16:47:50 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-09-18 07:39:47 +0200
commit2d20386b41f30ffbd9bfcadd48877ebd8766c22a (patch)
tree76925cb1198565c07c9da988321a3be362905730 /django
parent0859093f7c240b9677c62cac3682fd8c2643fa97 (diff)
[4.1.x] Fixed #34016 -- Fixed QuerySet.values()/values_list() crash on ArrayAgg() and JSONBAgg().
Regression in e06dc4571ea9fd5723c8029959b95808be9f8812. Backport of f88fc72da4eb76f2d464edb4874ef6046f8a8658 from main
Diffstat (limited to 'django')
-rw-r--r--django/contrib/postgres/aggregates/mixins.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/django/contrib/postgres/aggregates/mixins.py b/django/contrib/postgres/aggregates/mixins.py
index b2f4097b8f..340a917879 100644
--- a/django/contrib/postgres/aggregates/mixins.py
+++ b/django/contrib/postgres/aggregates/mixins.py
@@ -14,10 +14,13 @@ class OrderableAggMixin:
return super().resolve_expression(*args, **kwargs)
def get_source_expressions(self):
- return super().get_source_expressions() + [self.order_by]
+ if self.order_by.source_expressions:
+ return super().get_source_expressions() + [self.order_by]
+ return super().get_source_expressions()
def set_source_expressions(self, exprs):
- *exprs, self.order_by = exprs
+ if isinstance(exprs[-1], OrderByList):
+ *exprs, self.order_by = exprs
return super().set_source_expressions(exprs)
def as_sql(self, compiler, connection):