﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
12697	Prevent deletion of some rows in a formset	shadfc	nobody	"Original post to dev mailing list: http://groups.google.com/group/django-developers/browse_frm/thread/5008b34e29c80417

I need to prevent deletion of '''some''' of the rows on an inline modelformset.

At first I thought I could just do some validation in clean() and
attach errors to the ""DELETE"" (really the field mapped to 
forms.formsets.DELETION_FIELD_NAME), but 
[http://code.djangoproject.com/browser/django/trunk/django/forms/formsets.py?rev=#L216 is_valid()]
on the formset ignores errors on forms when can_delete is True. 

A few possible solutions:

   1. Modify formset validation to ignore errors on the forms EXCEPT on the field referenced by forms.formsets.DELETION_FIELD_NAME (""DELETE"" normally).

   2. Make the behavior of ignoring validation errors when can_delete is True explicit. Add a parameter such as ""ignore_validation_on_delete"" which defaults to True for backward compatibility.  When False, formset validation fails on any errors.

   3. Allow can_delete to be specified per form in a formset, perhaps in a way similar to initial -- an iterable of boolean values.

   4. Add a pre-delete hook on model forms which can be used to circumvent deletion."	New feature	new	Forms	1.1	Normal				Accepted	0	0	0	0	0	0
