mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
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.
This commit is contained in:
@@ -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):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user