Opened 4 years ago

Closed 4 years ago

#17077 closed Bug (duplicate)

deleting empty row in formset

Reported by: shelldweller Owned by: nobody
Component: Forms Version: master
Severity: Normal Keywords: form, formset, validation
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

If in a formset user marks empty row for deletion, form validation succeeds but retrieving cleaned_data fails. How to replicate:

>>> from django import forms
>>> from django.forms.formsets import formset_factory
>>> class ArticleForm(forms.Form):
...     title = forms.CharField()
...     pub_date = forms.DateField()
...
>>> ArticleFormSet = formset_factory(ArticleForm, extra=1, can_delete=True)
>>> data = {
...     'form-TOTAL_FORMS': u'2',
...     'form-INITIAL_FORMS': u'0',
...     'form-MAX_NUM_FORMS': u'',
...     'form-0-title': u'Test',
...     'form-0-pub_date': u'1904-06-16',
...     'form-0-DELETE': u'',
...     'form-1-title': u'',
...     'form-1-pub_date' : u'',
...     'form-1-DELETE' : 'o',
... }
>>>
>>> formset = ArticleFormSet(data)
>>> formset.is_valid()
True
>>> formset.cleaned_data
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "D:\work\src\django-svn\trunk\django\forms\formsets.py", line 164, in _get_cleaned_data
    return [form.cleaned_data for form in self.forms]
AttributeError: 'ArticleForm' object has no attribute 'cleaned_data'

Suggested behaviour: accept and ignore empty line deletion.

Change History (1)

comment:1 Changed 4 years ago by claudep

  • Needs documentation unset
  • Needs tests unset
  • Patch needs improvement unset
  • Resolution set to duplicate
  • Status changed from new to closed

Already reported on #10828

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