Loading django/forms/widgets.py +1 −1 Original line number Diff line number Diff line Loading @@ -693,7 +693,7 @@ class ChoiceFieldRenderer(object): self.choices = choices def __getitem__(self, idx): choice = self.choices[idx] # Let the IndexError propagate choice = list(self.choices)[idx] # Let the IndexError propagate return self.choice_input_class(self.name, self.value, self.attrs.copy(), choice, idx) def __str__(self): Loading tests/model_forms/tests.py +7 −0 Original line number Diff line number Diff line Loading @@ -1593,6 +1593,13 @@ class ModelChoiceFieldTests(TestCase): with self.assertNumQueries(1): template.render(Context({'field': field})) def test_modelchoicefield_index_renderer(self): field = forms.ModelChoiceField(Category.objects.all(), widget=forms.RadioSelect) self.assertEqual( str(field.widget.get_renderer('foo', [])[0]), '<label><input name="foo" type="radio" value="" /> ---------</label>' ) def test_modelchoicefield_iterator(self): """ Iterator defaults to ModelChoiceIterator and can be overridden with Loading Loading
django/forms/widgets.py +1 −1 Original line number Diff line number Diff line Loading @@ -693,7 +693,7 @@ class ChoiceFieldRenderer(object): self.choices = choices def __getitem__(self, idx): choice = self.choices[idx] # Let the IndexError propagate choice = list(self.choices)[idx] # Let the IndexError propagate return self.choice_input_class(self.name, self.value, self.attrs.copy(), choice, idx) def __str__(self): Loading
tests/model_forms/tests.py +7 −0 Original line number Diff line number Diff line Loading @@ -1593,6 +1593,13 @@ class ModelChoiceFieldTests(TestCase): with self.assertNumQueries(1): template.render(Context({'field': field})) def test_modelchoicefield_index_renderer(self): field = forms.ModelChoiceField(Category.objects.all(), widget=forms.RadioSelect) self.assertEqual( str(field.widget.get_renderer('foo', [])[0]), '<label><input name="foo" type="radio" value="" /> ---------</label>' ) def test_modelchoicefield_iterator(self): """ Iterator defaults to ModelChoiceIterator and can be overridden with Loading