diff options
| author | Baptiste Mispelon <bmispelon@gmail.com> | 2014-11-12 21:18:11 +0100 |
|---|---|---|
| committer | Baptiste Mispelon <bmispelon@gmail.com> | 2014-11-12 22:46:00 +0100 |
| commit | 606c57a132a1e1e680853c014efc41110ee75a80 (patch) | |
| tree | de1d9fd7067c715924f56f315e8444fbcd6aef70 /tests/model_forms | |
| parent | 3e0d7de8a6380c5747717cf32166864a22f258d5 (diff) | |
[1.7.x] 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.
Backport of bfb11b95626f39e2f5e18d97d7761c6f93dcc1a9 from master.
Conflicts:
django/forms/fields.py
Diffstat (limited to 'tests/model_forms')
| -rw-r--r-- | tests/model_forms/tests.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/model_forms/tests.py b/tests/model_forms/tests.py index eaf0c57863..2b342db744 100644 --- a/tests/model_forms/tests.py +++ b/tests/model_forms/tests.py @@ -2345,6 +2345,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``. @@ -2375,6 +2386,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): |
