1
0
mirror of https://github.com/django/django.git synced 2025-10-31 09:41:08 +00:00

[1.10.x] Refs #27186 -- Fixed model form default fallback for CheckboxSelectMultiple.

Backport of 87c5e7efeb from master
This commit is contained in:
Tim Graham
2016-09-30 14:49:50 -04:00
parent fb9f396275
commit f23c03ebc8
6 changed files with 38 additions and 10 deletions

View File

@@ -585,6 +585,22 @@ class ModelFormBaseTest(TestCase):
self.assertIsInstance(mf1.fields['active'].widget, forms.CheckboxInput)
self.assertIs(m1._meta.get_field('active').get_default(), True)
def test_default_not_populated_on_checkboxselectmultiple(self):
class PubForm(forms.ModelForm):
mode = forms.CharField(required=False, widget=forms.CheckboxSelectMultiple)
class Meta:
model = PublicationDefaults
fields = ('mode',)
# Empty data doesn't use the model default because an unchecked
# CheckboxSelectMultiple 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'
@@ -635,7 +651,7 @@ class ModelFormBaseTest(TestCase):
m2 = mf2.save(commit=False)
self.assertEqual(m2.file.name, 'name')
def test_selectdatewidget(self):
def test_default_selectdatewidget(self):
class PubForm(forms.ModelForm):
date_published = forms.DateField(required=False, widget=forms.SelectDateWidget)