summaryrefslogtreecommitdiff
path: root/tests/model_forms
diff options
context:
space:
mode:
authorheathervm <heathervmurray@gmail.com>2017-03-31 07:10:08 -0700
committerTim Graham <timograham@gmail.com>2017-03-31 10:10:08 -0400
commit7d1e23775344cc3dead03bd4af45f4fdf134b819 (patch)
tree0b1b7aa765e7d21bf9d90f34be87563e32266f60 /tests/model_forms
parenta0d29a9abe93cbe87cf818c3b538506e49739b6c (diff)
Fixed #27993 -- Fixed model form default fallback for SelectMultiple.
Diffstat (limited to 'tests/model_forms')
-rw-r--r--tests/model_forms/tests.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/model_forms/tests.py b/tests/model_forms/tests.py
index 3509146856..c85eb2a6fa 100644
--- a/tests/model_forms/tests.py
+++ b/tests/model_forms/tests.py
@@ -614,6 +614,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'