Commit 6c7cf34d authored by Malcolm Tredinnick's avatar Malcolm Tredinnick
Browse files

Fixed #9171 -- Fixed a few places where we were assuming lists instead of

generic sequences in ModelForm structures. Patch from mrmachine.


git-svn-id: http://code.djangoproject.com/svn/django/trunk@9086 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent edabc4ac
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -266,7 +266,7 @@ class ModelAdmin(BaseModelAdmin):
        if self.exclude is None:
            exclude = []
        else:
            exclude = self.exclude
            exclude = list(self.exclude)
        defaults = {
            "form": self.form,
            "fields": fields,
@@ -780,7 +780,7 @@ class InlineModelAdmin(BaseModelAdmin):
        if self.exclude is None:
            exclude = []
        else:
            exclude = self.exclude
            exclude = list(self.exclude)
        defaults = {
            "form": self.form,
            "formset": self.formset,
+1 −0
Original line number Diff line number Diff line
@@ -528,6 +528,7 @@ def inlineformset_factory(parent_model, model, form=ModelForm,
    if fk.unique:
        max_num = 1
    if exclude is not None:
        exclude = list(exclude)
        exclude.append(fk.name)
    else:
        exclude = [fk.name]
+2 −0
Original line number Diff line number Diff line
@@ -51,5 +51,7 @@ Traceback (most recent call last):
Exception: <class 'regressiontests.inline_formsets.models.Child'> has no field named 'test'


# Regression test for #9171.
>>> ifs = inlineformset_factory(Parent, Child, exclude=('school',), fk_name='mother')
"""
}
+8 −0
Original line number Diff line number Diff line
@@ -124,6 +124,14 @@ displayed because you forgot to add it to fields/fielsets
>>> ma.get_form(request).base_fields.keys() 
['name', 'sign_date']

# You can also pass a tuple to `exclude`.
 
>>> class BandAdmin(ModelAdmin): 
...     exclude = ('bio',) 
>>> ma = BandAdmin(Band, site) 
>>> ma.get_form(request).base_fields.keys() 
['name', 'sign_date']
 
# Using `fields` and `exclude`.

>>> class BandAdmin(ModelAdmin):