1
0
mirror of https://github.com/django/django.git synced 2025-10-25 22:56:12 +00:00

[1.11.x] Fixed #27993 -- Fixed model form default fallback for SelectMultiple.

Backport of 7d1e237753 from master
This commit is contained in:
heathervm
2017-03-31 07:10:08 -07:00
committed by Tim Graham
parent 8484cf4cd0
commit ff0c6b83e5
6 changed files with 42 additions and 10 deletions

View File

@@ -618,6 +618,22 @@ class ModelFormBaseTest(TestCase):
self.assertEqual(m1.mode, '')
self.assertEqual(m1._meta.get_field('mode').get_default(), 'di')
def test_default_not_populated_on_selectmultiple(self):
class PubForm(forms.ModelForm):
mode = forms.CharField(required=False, widget=forms.SelectMultiple)
class Meta:
model = PublicationDefaults
fields = ('mode',)
# Empty data doesn't use the model default because an unselected
# SelectMultiple doesn't have a value in HTML form submission.
mf1 = PubForm({})
self.assertEqual(mf1.errors, {})
m1 = mf1.save(commit=False)
self.assertEqual(m1.mode, '')
self.assertEqual(m1._meta.get_field('mode').get_default(), 'di')
def test_prefixed_form_with_default_field(self):
class PubForm(forms.ModelForm):
prefix = 'form-prefix'