1
0
mirror of https://github.com/django/django.git synced 2025-10-26 15:16:09 +00:00

Fixed #25496 -- Made ModelChoiceField respect prefetch_related().

This commit is contained in:
Tim Graham
2015-10-05 18:21:56 -04:00
parent 9f2881deb1
commit 6afa6818fc
3 changed files with 28 additions and 2 deletions

View File

@@ -1102,7 +1102,9 @@ class ModelChoiceIterator(object):
def __iter__(self):
if self.field.empty_label is not None:
yield ("", self.field.empty_label)
for obj in self.queryset.iterator():
# 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)():
yield self.choice(obj)
def __len__(self):