Commit fb3d916c authored by Claude Paroz's avatar Claude Paroz
Browse files

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.
parent ae88e73f
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -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):
        """
+5 −1
Original line number Diff line number Diff line
@@ -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