diff options
Diffstat (limited to 'tests/model_forms')
| -rw-r--r-- | tests/model_forms/tests.py | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/tests/model_forms/tests.py b/tests/model_forms/tests.py index 8c706f1a56..085a95733e 100644 --- a/tests/model_forms/tests.py +++ b/tests/model_forms/tests.py @@ -1576,11 +1576,22 @@ class ModelChoiceFieldTests(TestCase): field = CustomModelChoiceField(Category.objects.all()) self.assertIsInstance(field.choices, CustomModelChoiceIterator) - def test_radioselect_num_queries(self): + def test_modelchoicefield_num_queries(self): + """ + Widgets that render multiple subwidgets shouldn't make more than one + database query. + """ + categories = Category.objects.all() + class CategoriesForm(forms.Form): - categories = forms.ModelChoiceField(Category.objects.all(), widget=forms.RadioSelect) + radio = forms.ModelChoiceField(queryset=categories, widget=forms.RadioSelect) + checkbox = forms.ModelMultipleChoiceField(queryset=categories, widget=forms.CheckboxSelectMultiple) + + template = Template(""" + {% for widget in form.checkbox %}{{ widget }}{% endfor %} + {% for widget in form.radio %}{{ widget }}{% endfor %} + """) - template = Template('{% for widget in form.categories %}{{ widget }}{% endfor %}') with self.assertNumQueries(2): template.render(Context({'form': CategoriesForm()})) |
