1
0
mirror of https://github.com/django/django.git synced 2025-10-31 09:41:08 +00:00

Fixed #30687 -- Fixed using of OuterRef() expressions in distance lookups.

This commit is contained in:
Andrew Brown
2019-08-07 12:54:40 -04:00
committed by Mariusz Felisiak
parent 8289fc55ff
commit 8a281aa7fe
2 changed files with 20 additions and 4 deletions

View File

@@ -1054,15 +1054,21 @@ class Query(BaseExpression):
elif isinstance(value, (list, tuple)):
# The items of the iterable may be expressions and therefore need
# to be resolved independently.
resolved_values = []
for sub_value in value:
if hasattr(sub_value, 'resolve_expression'):
if isinstance(sub_value, F):
sub_value.resolve_expression(
resolved_values.append(sub_value.resolve_expression(
self, reuse=can_reuse, allow_joins=allow_joins,
simple_col=simple_col,
)
))
else:
sub_value.resolve_expression(self, reuse=can_reuse, allow_joins=allow_joins)
resolved_values.append(sub_value.resolve_expression(
self, reuse=can_reuse, allow_joins=allow_joins,
))
else:
resolved_values.append(sub_value)
value = tuple(resolved_values)
return value
def solve_lookup_type(self, lookup):