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

Fixed #31607 -- Fixed evaluated Subquery equality.

Regression in 691def10a0.
This commit is contained in:
Mariusz Felisiak
2020-05-19 12:30:49 +02:00
parent b739f2e91d
commit a125da6a7c
2 changed files with 27 additions and 1 deletions

View File

@@ -1021,11 +1021,18 @@ class Subquery(Expression):
def __init__(self, queryset, output_field=None, **extra):
self.query = queryset.query
self.extra = extra
# Prevent the QuerySet from being evaluated.
self.queryset = queryset._chain(_result_cache=[], prefetch_done=True)
super().__init__(output_field)
def __getstate__(self):
state = super().__getstate__()
state.pop('_constructor_args', None)
args, kwargs = state['_constructor_args']
if args:
args = (self.queryset, *args[1:])
else:
kwargs['queryset'] = self.queryset
state['_constructor_args'] = args, kwargs
return state
def get_source_expressions(self):