diff options
author | Loic Bistuer <loic.bistuer@gmail.com> | 2015-02-07 04:19:23 +0700 |
---|---|---|
committer | Loic Bistuer <loic.bistuer@gmail.com> | 2015-02-13 19:13:05 +0700 |
commit | 00a889167f6699d02cee50848750d8d0e110d41c (patch) | |
tree | 8e0a110eb77a8657be930b027543234e0d37da86 /tests/model_formsets | |
parent | e8cf4f8abec87b9da6ed8e5c8cf833af9b27f4dd (diff) | |
download | django-00a889167f6699d02cee50848750d8d0e110d41c.tar.gz |
Fixed #24295 -- Allowed ModelForm meta to specify form field classes.
Thanks Carl Meyer and Markus Holtermann for the reviews.
Diffstat (limited to 'tests/model_formsets')
-rw-r--r-- | tests/model_formsets/tests.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/model_formsets/tests.py b/tests/model_formsets/tests.py index 2d0380195b..217a1a1049 100644 --- a/tests/model_formsets/tests.py +++ b/tests/model_formsets/tests.py @@ -1431,3 +1431,21 @@ class TestModelFormsetOverridesTroughFormMeta(TestCase): form = BookFormSet.form(data={'title': 'Foo ' * 30, 'author': author.id}) form.full_clean() self.assertEqual(form.errors, {'title': ['Title too long!!']}) + + def test_modelformset_factory_field_class_overrides(self): + author = Author.objects.create(pk=1, name='Charles Baudelaire') + BookFormSet = modelformset_factory(Book, fields="__all__", field_classes={ + 'title': forms.SlugField, + }) + form = BookFormSet.form(data={'title': 'Foo ' * 30, 'author': author.id}) + self.assertIs(Book._meta.get_field('title').__class__, models.CharField) + self.assertIsInstance(form.fields['title'], forms.SlugField) + + def test_inlineformset_factory_field_class_overrides(self): + author = Author.objects.create(pk=1, name='Charles Baudelaire') + BookFormSet = inlineformset_factory(Author, Book, fields="__all__", field_classes={ + 'title': forms.SlugField, + }) + form = BookFormSet.form(data={'title': 'Foo ' * 30, 'author': author.id}) + self.assertIs(Book._meta.get_field('title').__class__, models.CharField) + self.assertIsInstance(form.fields['title'], forms.SlugField) |