Opened 16 years ago
Closed 16 years ago
#10331 closed (invalid)
Using model InlineFormset created with inlineformset_factory fails with KeyError
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Forms | Version: | dev |
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 |
Description
The following code would fail with KeyError 'user' at django/forms/models.py 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[self.fk.name] before it is created.
Attached is a patch against r9885 fixing this, but should probably be better investigated.
Attachments (1)
Change History (3)
by , 16 years ago
Attachment: | r9885-inlinemodelformset.diff added |
---|
comment:1 by , 16 years ago
Cc: | added |
---|
comment:2 by , 16 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
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.
Patch for ticket #10331