summaryrefslogtreecommitdiff
path: root/django/db/models/sql
diff options
context:
space:
mode:
authorAdam Johnson <me@adamj.eu>2020-10-23 10:33:10 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-10-23 18:01:31 +0200
commita56586eafeb6d1212bc291d1a2e7d33c87edbc33 (patch)
tree77860a5ec1a0b99fb6eb8f0bb0a983616b4482bb /django/db/models/sql
parent755dbf39fcdc491fe9b588358303e259c7750be4 (diff)
Fixed #32134 -- Fixed crash of __range lookup with namedtuple.
Regression in 8be79984dce7d819879a6e594ca69c5f95a08378. Thanks Gordon Wrigley for the report.
Diffstat (limited to 'django/db/models/sql')
-rw-r--r--django/db/models/sql/query.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index 4648daf395..ee98984826 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -1077,10 +1077,14 @@ class Query(BaseExpression):
elif isinstance(value, (list, tuple)):
# The items of the iterable may be expressions and therefore need
# to be resolved independently.
- return type(value)(
+ values = (
self.resolve_lookup_value(sub_value, can_reuse, allow_joins)
for sub_value in value
)
+ type_ = type(value)
+ if hasattr(type_, '_make'): # namedtuple
+ return type_(*values)
+ return type_(values)
return value
def solve_lookup_type(self, lookup):