summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Kaplan-Moss <jacob@jacobian.org>2009-04-03 20:04:39 +0000
committerJacob Kaplan-Moss <jacob@jacobian.org>2009-04-03 20:04:39 +0000
commitfbffc2e943eba73715d1564f437ca4ee028de9d3 (patch)
tree5d72924502478b2f543020bc0addd1296b89f2e3
parent9907495b3c412ece76f5e5e4c4e5df12b93caf78 (diff)
[1.0.X] Fixed #10522: accept tuples in `generic_inlineformset_factor(exclude)`. Thanks, mk. Backport of r10375 from trunk.
git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@10376 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/contrib/contenttypes/generic.py1
-rw-r--r--tests/regressiontests/generic_inline_admin/tests.py6
2 files changed, 7 insertions, 0 deletions
diff --git a/django/contrib/contenttypes/generic.py b/django/contrib/contenttypes/generic.py
index 0be1de6e63..adc245bb75 100644
--- a/django/contrib/contenttypes/generic.py
+++ b/django/contrib/contenttypes/generic.py
@@ -355,6 +355,7 @@ def generic_inlineformset_factory(model, form=ModelForm,
raise Exception("fk_name '%s' is not a ForeignKey to ContentType" % ct_field)
fk_field = opts.get_field(fk_field) # let the exception propagate
if exclude is not None:
+ exclude = list(exclude)
exclude.extend([ct_field.name, fk_field.name])
else:
exclude = [ct_field.name, fk_field.name]
diff --git a/tests/regressiontests/generic_inline_admin/tests.py b/tests/regressiontests/generic_inline_admin/tests.py
index e03cc1f2f4..57a9c701cb 100644
--- a/tests/regressiontests/generic_inline_admin/tests.py
+++ b/tests/regressiontests/generic_inline_admin/tests.py
@@ -2,6 +2,7 @@
from django.test import TestCase
from django.conf import settings
+from django.contrib.contenttypes.generic import generic_inlineformset_factory
# local test models
from models import Episode, Media
@@ -71,3 +72,8 @@ class GenericAdminViewTest(TestCase):
}
response = self.client.post('/generic_inline_admin/admin/generic_inline_admin/episode/1/', post_data)
self.failUnlessEqual(response.status_code, 302) # redirect somewhere
+
+ def testGenericInlineFormsetFactory(self):
+ # Regression test for #10522.
+ inline_formset = generic_inlineformset_factory(Media,
+ exclude=('url',))