Opened 15 years ago

Closed 15 years ago

#11476 closed (wontfix)

Using delete on modelformset doesn't remove form from set — at Version 1

Reported by: Michael Stevens <mstevens@…> Owned by: nobody
Component: Forms Version: dev
Severity: Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Karen Tracey)

I'm using a ModelFormset created with lineformset_factory.

When I click delete on one of the records and save the formset, it
successfully removes the associated db record, but if I redisplay the
formset after the save, it's still showing the now removed form.

I've modified my code to recreate the formset from the db immediately
after the save:

 if foo_formset.is_valid():
     foo_formset.save()
     foo_formset = FooInlineFormset(instance=bar, prefix='foo')

and it does what I expect, but shouldn't it be in the right state
after the save?

Looking at the code I think the problem is that BaseModelFormSet
doesn't do anything with deleted forms after it deletes the underlying
model object - I'm expecting them to be removed from the formset as
well.

I'm running a svn checkout of 1.1.

Change History (1)

comment:1 by Karen Tracey, 15 years ago

Description: modified (diff)
Resolution: wontfix
Status: newclosed

Fixed formatting. Please use preview, you need three brackets, not two, to embed code.

This was answered on the mailing list as a problem with your expectations, not a bug in the code: http://groups.google.com/group/django-users/browse_thread/thread/97885473cb5b4ffd/ so I am not sure why you opened a ticket on it. If you disagree it would have been better to continue the conversation on the list. You have provided no new information/support for your viewpoint in this ticket so the answer here is the same.

Re-displaying a form after successfully processing it is not an expected pattern, nor is it good design from a usability standpoint. Doing work to fix up the form data to reflect a delete is thus a waste of time for the normal case and enabling bad design. I don't believe we should do this.

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