diff --git a/tests/modeltests/model_formsets/tests.py b/tests/modeltests/model_formsets/tests.py index 34f8d47755..0e4f2f5991 100644 --- a/tests/modeltests/model_formsets/tests.py +++ b/tests/modeltests/model_formsets/tests.py @@ -6,7 +6,7 @@ from decimal import Decimal from django import forms from django.db import models from django.forms.models import (_get_foreign_key, inlineformset_factory, - modelformset_factory, modelformset_factory) + modelformset_factory) from django.test import TestCase, skipUnlessDBFeature from modeltests.model_formsets.models import ( @@ -353,6 +353,28 @@ class ModelFormsetTest(TestCase): self.assertEqual(poet1.name, 'Vladimir Mayakovsky') self.assertEqual(poet2.name, 'Vladimir Mayakovsky') + def test_custom_form(self): + """ Test that model_formset respects fields and exclude parameters of + custom form + """ + class PostForm1(forms.ModelForm): + class Meta: + model = Post + fields = ('title', 'posted') + + class PostForm2(forms.ModelForm): + class Meta: + model = Post + exclude = ('subtitle',) + + PostFormSet = modelformset_factory(Post, form=PostForm1) + formset = PostFormSet() + self.assertFalse("subtitle" in formset.forms[0].fields) + + PostFormSet = modelformset_factory(Post, form=PostForm2) + formset = PostFormSet() + self.assertFalse("subtitle" in formset.forms[0].fields) + def test_model_inheritance(self): BetterAuthorFormSet = modelformset_factory(BetterAuthor) formset = BetterAuthorFormSet()