Opened 2 years ago
Last modified 2 years ago
#34016 closed Bug
QuerySet.values_list crash when using ArrayAgg — at Version 2
Reported by: | Alex Kerkum | Owned by: | |
---|---|---|---|
Component: | contrib.postgres | Version: | 4.1 |
Severity: | Release blocker | Keywords: | |
Cc: | Simon Charette | Triage Stage: | Ready for checkin |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
Using ArrayAgg
in combination with values_list
results in 'TypeError: Complex expressions require an alias'.
For example:
from django.contrib.postgres.aggregates import ArrayAgg SampleUser.objects.values_list(ArrayAgg("post_id")) File django/db/models/aggregates.py:98, in Aggregate.default_alias(self) 96 if len(expressions) == 1 and hasattr(expressions[0], "name"): 97 return "%s__%s" % (expressions[0].name, self.name.lower()) ---> 98 raise TypeError("Complex expressions require an alias") TypeError: Complex expressions require an alias
The expressions
variable here seems to contain [F(post_id), OrderByList()]
causing the len(expressions)
check to fail. That's as far as I got.
To me this seems related to #33898 caused by a regression in https://github.com/django/django/commit/e06dc4571ea9fd5723c8029959b95808be9f8812
This still worked in 4.0.7.
Change History (2)
comment:1 by , 2 years ago
Description: | modified (diff) |
---|
comment:2 by , 2 years ago
Description: | modified (diff) |
---|
Note:
See TracTickets
for help on using tickets.