summaryrefslogtreecommitdiff
path: root/django/forms
diff options
context:
space:
mode:
authorMarti Raudsepp <marti@voicecom.ee>2015-11-05 19:02:18 +0200
committerTim Graham <timograham@gmail.com>2015-11-09 12:44:34 -0500
commit8db5122d6937bfcaf9a5894ba8f329d2a4424ca5 (patch)
tree058ab8897ee68f1ce8b87fb17645299ded4fee9f /django/forms
parent6858bf758ccf1cd6ce46f3fc0b547f52cd7339db (diff)
[1.9.x] Fixed #25683 -- Allowed ModelChoiceField(queryset=...) to accept Managers.
This fixes a regression from refs #25496. Backport of 1155843a41af589a856efe8e671a796866430049 from master
Diffstat (limited to 'django/forms')
-rw-r--r--django/forms/models.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/django/forms/models.py b/django/forms/models.py
index 938535bf6a..8c0f2e97a6 100644
--- a/django/forms/models.py
+++ b/django/forms/models.py
@@ -1102,9 +1102,11 @@ class ModelChoiceIterator(object):
def __iter__(self):
if self.field.empty_label is not None:
yield ("", self.field.empty_label)
+ queryset = self.queryset.all()
# Can't use iterator() when queryset uses prefetch_related()
- method = 'all' if self.queryset._prefetch_related_lookups else 'iterator'
- for obj in getattr(self.queryset, method)():
+ if not queryset._prefetch_related_lookups:
+ queryset = queryset.iterator()
+ for obj in queryset:
yield self.choice(obj)
def __len__(self):