Opened 17 years ago
Closed 17 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 , 17 years ago
| Attachment: | r9885-inlinemodelformset.diff added |
|---|
comment:1 by , 17 years ago
| Cc: | added |
|---|
comment:2 by , 17 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