mirror of
https://github.com/django/django.git
synced 2025-10-24 22:26:08 +00:00
[1.0.X] Fixed #9587. Formset.is_valid() now returns True if an invalid form is marked for deletion. Backport of r10206 from trunk.
git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@10219 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -241,7 +241,7 @@ data.
|
||||
|
||||
# FormSets with deletion ######################################################
|
||||
|
||||
We can easily add deletion ability to a FormSet with an agrument to
|
||||
We can easily add deletion ability to a FormSet with an argument to
|
||||
formset_factory. This will add a boolean field to each form instance. When
|
||||
that boolean field is True, the form will be in formset.deleted_forms
|
||||
|
||||
@@ -286,6 +286,34 @@ True
|
||||
>>> [form.cleaned_data for form in formset.deleted_forms]
|
||||
[{'votes': 900, 'DELETE': True, 'choice': u'Fergie'}]
|
||||
|
||||
If we fill a form with something and then we check the can_delete checkbox for
|
||||
that form, that form's errors should not make the entire formset invalid since
|
||||
it's going to be deleted.
|
||||
|
||||
>>> class CheckForm(Form):
|
||||
... field = IntegerField(min_value=100)
|
||||
|
||||
>>> data = {
|
||||
... 'check-TOTAL_FORMS': '3', # the number of forms rendered
|
||||
... 'check-INITIAL_FORMS': '2', # the number of forms with initial data
|
||||
... 'check-0-field': '200',
|
||||
... 'check-0-DELETE': '',
|
||||
... 'check-1-field': '50',
|
||||
... 'check-1-DELETE': 'on',
|
||||
... 'check-2-field': '',
|
||||
... 'check-2-DELETE': '',
|
||||
... }
|
||||
>>> CheckFormSet = formset_factory(CheckForm, can_delete=True)
|
||||
>>> formset = CheckFormSet(data, prefix='check')
|
||||
>>> formset.is_valid()
|
||||
True
|
||||
|
||||
If we remove the deletion flag now we will have our validation back.
|
||||
|
||||
>>> data['check-1-DELETE'] = ''
|
||||
>>> formset = CheckFormSet(data, prefix='check')
|
||||
>>> formset.is_valid()
|
||||
False
|
||||
|
||||
# FormSets with ordering ######################################################
|
||||
|
||||
|
||||
Reference in New Issue
Block a user