Django

Code

Show
Ignore:
Timestamp:
11/13/08 13:03:44 (2 months ago)
Author:
brosner
Message:

Fixed #9498 -- Handle a formset correctly when the foreign key is not available (for now).

This case pops up with generic foreign key inlines after [9297]. Added tests
to handle future regressions with generic foreign key inlines in the admin.

Thanks markus and danielr for patches.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • django/trunk/django/contrib/admin/helpers.py

    r9297 r9412  
    109109 
    110110    def fields(self): 
     111        fk = getattr(self.formset, "fk", None) 
    111112        for field_name in flatten_fieldsets(self.fieldsets): 
    112             if self.formset.fk.name == field_name: 
     113            if fk and fk.name == field_name: 
    113114                continue 
    114115            yield self.formset.form.base_fields[field_name] 
     
    151152     
    152153    def fk_field(self): 
    153         return AdminField(self.form, self.formset.fk.name, False) 
     154        fk = getattr(self.formset, "fk", None) 
     155        if fk: 
     156            return AdminField(self.form, fk.name, False) 
     157        else: 
     158            return "" 
    154159 
    155160    def deletion_field(self): 
     
    167172         
    168173    def __iter__(self): 
     174        fk = getattr(self.formset, "fk", None) 
    169175        for field in self.fields: 
    170             if self.formset.fk.name == field: 
     176            if fk and fk.name == field: 
    171177                continue 
    172178            yield Fieldline(self.form, field)