1
0
mirror of https://github.com/django/django.git synced 2025-10-26 23:26:08 +00:00

Fixed #25683 -- Allowed ModelChoiceField(queryset=...) to accept Managers.

This fixes a regression from refs #25496.
This commit is contained in:
Marti Raudsepp
2015-11-05 19:02:18 +02:00
committed by Tim Graham
parent c6da4b0c68
commit 1155843a41
3 changed files with 18 additions and 6 deletions

View File

@@ -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):