Opened 15 years ago

Closed 15 years ago

Last modified 13 years ago

#11872 closed (fixed)

can't pass instance=None to inline formset

Reported by: Tobias McNulty Owned by: Brian Rosner
Component: Forms Version: 1.1
Severity: Keywords:
Cc: Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

If you try to pass instance=None to a new unbound formset you get an exception:

Traceback (most recent call last):
  File "/home/tobias/caktus/eclipse-workspace/django-trunk/tests/regressiontests/model_formsets_regress/tests.py", line 152, in test_formset_with_none_instance
    form_set = FormSet(instance=None)
  File "../django/forms/models.py", line 721, in __init__
    backlink_value = getattr(self.instance, self.fk.rel.field_name)
AttributeError: 'UserSite' object has no attribute 'username'

because the formset is trying to instantiate the wrong type of model in place of the None instance.

A quick one-line change fixes the problem. Attached is a patch with a test demonstrating the problem and the proposed solution.

Attachments (1)

inline_formsets_none_instance.diff (1.4 KB ) - added by Tobias McNulty 15 years ago.
add ticket # to test in patch

Download all attachments as: .zip

Change History (4)

by Tobias McNulty, 15 years ago

add ticket # to test in patch

comment:1 by Brian Rosner, 15 years ago

Owner: changed from nobody to Brian Rosner
Triage Stage: UnreviewedAccepted

comment:2 by Brian Rosner, 15 years ago

Resolution: fixed
Status: newclosed

(In [11688]) Fixed #11872 -- Instantiate the correct model in BaseInlineFormSet.init when instance is None. Thanks tobias.

comment:3 by Jacob, 13 years ago

milestone: 1.2

Milestone 1.2 deleted

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