From a56586eafeb6d1212bc291d1a2e7d33c87edbc33 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Fri, 23 Oct 2020 10:33:10 +0100 Subject: Fixed #32134 -- Fixed crash of __range lookup with namedtuple. Regression in 8be79984dce7d819879a6e594ca69c5f95a08378. Thanks Gordon Wrigley for the report. --- django/db/models/sql/query.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'django/db/models/sql') 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): -- cgit v1.3