Opened 11 years ago

Closed 11 years ago

#10331 closed (invalid)

Using model InlineFormset created with inlineformset_factory fails with KeyError

Reported by: Thomas Presthus <thomas@…> Owned by: nobody
Component: Forms Version: master
Severity: Keywords:
Cc: thomas@… Triage Stage: Unreviewed
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no


The following code would fail with KeyError 'user' at django/forms/ in add_fields, line 507

from django.contrib.auth.models import User
from foo.models import InfoEntry

user = User.objects.get(pk=1)

InfoEntryFormset = inlineformset_factory(User, InfoEntry)
formset = InfoEntryFormset(instance=user)

It seems BaseInlineFormSet tries to access form.fields[] before it is created.
Attached is a patch against r9885 fixing this, but should probably be better investigated.

Attachments (1)

r9885-inlinemodelformset.diff (621 bytes) - added by Thomas Presthus <thomas@…> 11 years ago.
Patch for ticket #10331

Download all attachments as: .zip

Change History (3)

Changed 11 years ago by Thomas Presthus <thomas@…>

Patch for ticket #10331

comment:1 Changed 11 years ago by Thomas Presthus <thomas@…>

Cc: thomas@… added

comment:2 Changed 11 years ago by Brian Rosner

Resolution: invalid
Status: newclosed

I would suspect the foreign key to User is marked as editable=False which is incorrect. That would explain why form.fields does not contain that key. Marking invalid. Reopen if this is not the case.

Note: See TracTickets for help on using tickets.
Back to Top