From bfb11b95626f39e2f5e18d97d7761c6f93dcc1a9 Mon Sep 17 00:00:00 2001 From: Baptiste Mispelon Date: Wed, 12 Nov 2014 21:18:11 +0100 Subject: Fixed #23795 -- Fixed a regression in custom form fields Custom form fields having a `queryset` attribute but no `limit_choices_to` could no longer be used in ModelForms. Refs #2445. Thanks to artscoop for the report. --- tests/model_forms/tests.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tests/model_forms') diff --git a/tests/model_forms/tests.py b/tests/model_forms/tests.py index 98de9c95f2..86a027e4d4 100644 --- a/tests/model_forms/tests.py +++ b/tests/model_forms/tests.py @@ -2377,6 +2377,17 @@ class StumpJokeForm(forms.ModelForm): fields = '__all__' +class CustomFieldWithQuerysetButNoLimitChoicesTo(forms.Field): + queryset = 42 + + +class StumpJokeWithCustomFieldForm(forms.ModelForm): + custom = CustomFieldWithQuerysetButNoLimitChoicesTo() + class Meta: + model = StumpJoke + fields = () # We don't need any fields from the model + + class LimitChoicesToTest(TestCase): """ Tests the functionality of ``limit_choices_to``. @@ -2407,6 +2418,14 @@ class LimitChoicesToTest(TestCase): self.assertIn(self.threepwood, stumpjokeform.fields['has_fooled_today'].queryset) self.assertNotIn(self.marley, stumpjokeform.fields['has_fooled_today'].queryset) + def test_custom_field_with_queryset_but_no_limit_choices_to(self): + """ + Regression test for #23795: Make sure a custom field with a `queryset` + attribute but no `limit_choices_to` still works. + """ + f = StumpJokeWithCustomFieldForm() + self.assertEqual(f.fields['custom'].queryset, 42) + class FormFieldCallbackTests(TestCase): -- cgit v1.3