diff options
| author | Alexander Kerkum <alex.kerkum@waarneming.nl> | 2022-09-16 16:47:50 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-09-18 07:39:47 +0200 |
| commit | 2d20386b41f30ffbd9bfcadd48877ebd8766c22a (patch) | |
| tree | 76925cb1198565c07c9da988321a3be362905730 /django | |
| parent | 0859093f7c240b9677c62cac3682fd8c2643fa97 (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.py | 7 |
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): |
