summaryrefslogtreecommitdiff
path: root/django/db/models/sql
diff options
context:
space:
mode:
Diffstat (limited to 'django/db/models/sql')
-rw-r--r--django/db/models/sql/query.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py
index 7ba94f205b..387b91a60b 100644
--- a/django/db/models/sql/query.py
+++ b/django/db/models/sql/query.py
@@ -8,7 +8,7 @@ all about the internals of models in order to get the information it needs.
"""
import copy
import warnings
-from collections import Mapping, OrderedDict
+from collections import Iterator, Mapping, OrderedDict
from itertools import chain, count, product
from string import ascii_uppercase
@@ -1167,6 +1167,9 @@ class Query(object):
field, sources, opts, join_list, path = self.setup_joins(
parts, opts, alias, can_reuse=can_reuse, allow_many=allow_many)
+ # Prevent iterator from being consumed by check_related_objects()
+ if isinstance(value, Iterator):
+ value = list(value)
self.check_related_objects(field, value, opts)
# split_exclude() needs to know which joins were generated for the