summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2013-12-06 14:40:51 +0100
committerClaude Paroz <claude@2xlibre.net>2013-12-07 10:14:22 +0100
commit8a9c8bb90736451e6bdea82723cbb23a695146fb (patch)
tree4f13cdb15c6c6627e5bc31e8af6af65295c8dd74 /tests
parent6d20a80d986848da5944904c7f91d6e002701ef1 (diff)
Fixed #21568 -- Added missing ModelMultipleChoiceField to_python method
Thanks dibrovsd at gmail.com for the report and Simon Charette for the review.
Diffstat (limited to 'tests')
-rw-r--r--tests/model_forms_regress/tests.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/model_forms_regress/tests.py b/tests/model_forms_regress/tests.py
index 963c7e552d..d6c05f3153 100644
--- a/tests/model_forms_regress/tests.py
+++ b/tests/model_forms_regress/tests.py
@@ -45,6 +45,29 @@ class ModelMultipleChoiceFieldTests(TestCase):
f.clean([p.pk for p in Person.objects.all()[8:9]])
self.assertTrue(self._validator_run)
+ def test_model_multiple_choice_show_hidden_initial(self):
+ """
+ Test support of show_hidden_initial by ModelMultipleChoiceField.
+ """
+ class PersonForm(forms.Form):
+ persons = forms.ModelMultipleChoiceField(show_hidden_initial=True,
+ queryset=Person.objects.all())
+
+ person1 = Person.objects.create(name="Person 1")
+ person2 = Person.objects.create(name="Person 2")
+
+ form = PersonForm(initial={'persons': [person1, person2]},
+ data={'initial-persons': [str(person1.pk), str(person2.pk)],
+ 'persons': [str(person1.pk), str(person2.pk)]})
+ self.assertTrue(form.is_valid())
+ self.assertFalse(form.has_changed())
+
+ form = PersonForm(initial={'persons': [person1, person2]},
+ data={'initial-persons': [str(person1.pk), str(person2.pk)],
+ 'persons': [str(person2.pk)]})
+ self.assertTrue(form.is_valid())
+ self.assertTrue(form.has_changed())
+
class TripleForm(forms.ModelForm):
class Meta: