diff options
| author | Claude Paroz <claude@2xlibre.net> | 2012-08-30 15:51:13 +0200 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2012-08-30 15:51:13 +0200 |
| commit | fb3d916c201d5882098bbcc94f60765412ba7aff (patch) | |
| tree | 6dc1669ceecdafd3efd4f6c0c25388613d1f2b85 | |
| parent | ae88e73fa630694a152b54df68d53ce535312e45 (diff) | |
Fixed #18751 -- Cleaned up BaseFormSet._should_delete_form
We can do that now that cleaned_data is guaranteed to be
present. Related to [121fd109].
Thanks Simon Charette for his work on the ticket.
| -rw-r--r-- | django/forms/formsets.py | 11 | ||||
| -rw-r--r-- | django/forms/models.py | 6 |
2 files changed, 9 insertions, 8 deletions
diff --git a/django/forms/formsets.py b/django/forms/formsets.py index 1e8edfdb79..bdcef92dec 100644 --- a/django/forms/formsets.py +++ b/django/forms/formsets.py @@ -254,13 +254,10 @@ class BaseFormSet(object): errors = property(_get_errors) def _should_delete_form(self, form): - # The way we lookup the value of the deletion field here takes - # more code than we'd like, but the form's cleaned_data will - # not exist if the form is invalid. - field = form.fields[DELETION_FIELD_NAME] - raw_value = form._raw_value(DELETION_FIELD_NAME) - should_delete = field.clean(raw_value) - return should_delete + """ + Returns whether or not the form was marked for deletion. + """ + return form.cleaned_data.get(DELETION_FIELD_NAME, False) def is_valid(self): """ diff --git a/django/forms/models.py b/django/forms/models.py index 2482437152..1aa49eaaec 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -591,6 +591,10 @@ class BaseModelFormSet(BaseFormSet): return [] saved_instances = [] + try: + forms_to_delete = self.deleted_forms + except AttributeError: + forms_to_delete = [] for form in self.initial_forms: pk_name = self._pk_field.name raw_pk_value = form._raw_value(pk_name) @@ -601,7 +605,7 @@ class BaseModelFormSet(BaseFormSet): pk_value = getattr(pk_value, 'pk', pk_value) obj = self._existing_object(pk_value) - if self.can_delete and self._should_delete_form(form): + if form in forms_to_delete: self.deleted_objects.append(obj) obj.delete() continue |
