From c5ebfda00226e3695cadbc13ea9ce4c5951d3ed0 Mon Sep 17 00:00:00 2001 From: Alex Hill Date: Wed, 3 Aug 2016 11:12:06 +0800 Subject: Fixed #27001 -- Fixed a query count regression in ModelChoiceField with RadioSelect. --- django/forms/widgets.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'django/forms') diff --git a/django/forms/widgets.py b/django/forms/widgets.py index 217f37b022..ec076398cc 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -693,8 +693,11 @@ class ChoiceFieldRenderer(object): self.choices = choices def __getitem__(self, idx): - choice = list(self.choices)[idx] # Let the IndexError propagate - return self.choice_input_class(self.name, self.value, self.attrs.copy(), choice, idx) + return list(self)[idx] + + def __iter__(self): + for idx, choice in enumerate(self.choices): + yield self.choice_input_class(self.name, self.value, self.attrs.copy(), choice, idx) def __str__(self): return self.render() -- cgit v1.3