Fixed #10522: accept tuples in `generic_inlineformset_factor(exclude)`. Thanks, mk.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@10375 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Jacob Kaplan-Moss 2009-04-03 20:03:46 +00:00
parent 595c092a29
commit ffe8994014
2 changed files with 7 additions and 0 deletions

View File

@ -355,6 +355,7 @@ def generic_inlineformset_factory(model, form=ModelForm,
raise Exception("fk_name '%s' is not a ForeignKey to ContentType" % ct_field) raise Exception("fk_name '%s' is not a ForeignKey to ContentType" % ct_field)
fk_field = opts.get_field(fk_field) # let the exception propagate fk_field = opts.get_field(fk_field) # let the exception propagate
if exclude is not None: if exclude is not None:
exclude = list(exclude)
exclude.extend([ct_field.name, fk_field.name]) exclude.extend([ct_field.name, fk_field.name])
else: else:
exclude = [ct_field.name, fk_field.name] exclude = [ct_field.name, fk_field.name]

View File

@ -2,6 +2,7 @@
from django.test import TestCase from django.test import TestCase
from django.conf import settings from django.conf import settings
from django.contrib.contenttypes.generic import generic_inlineformset_factory
# local test models # local test models
from models import Episode, Media from models import Episode, Media
@ -74,3 +75,8 @@ class GenericAdminViewTest(TestCase):
url = '/generic_inline_admin/admin/generic_inline_admin/episode/%d/' % self.episode_pk url = '/generic_inline_admin/admin/generic_inline_admin/episode/%d/' % self.episode_pk
response = self.client.post(url, post_data) response = self.client.post(url, post_data)
self.failUnlessEqual(response.status_code, 302) # redirect somewhere self.failUnlessEqual(response.status_code, 302) # redirect somewhere
def testGenericInlineFormsetFactory(self):
# Regression test for #10522.
inline_formset = generic_inlineformset_factory(Media,
exclude=('url',))