summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2012-08-30 15:51:13 +0200
committerClaude Paroz <claude@2xlibre.net>2012-08-30 15:51:13 +0200
commitfb3d916c201d5882098bbcc94f60765412ba7aff (patch)
tree6dc1669ceecdafd3efd4f6c0c25388613d1f2b85
parentae88e73fa630694a152b54df68d53ce535312e45 (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.py11
-rw-r--r--django/forms/models.py6
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