diff options
| author | Marti Raudsepp <marti@voicecom.ee> | 2015-11-05 19:02:18 +0200 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-11-09 12:44:34 -0500 |
| commit | 8db5122d6937bfcaf9a5894ba8f329d2a4424ca5 (patch) | |
| tree | 058ab8897ee68f1ce8b87fb17645299ded4fee9f /django/forms | |
| parent | 6858bf758ccf1cd6ce46f3fc0b547f52cd7339db (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.py | 6 |
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): |
