summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Litchfield <simon@s29.com.au>2015-07-10 15:29:09 +1000
committerTim Graham <timograham@gmail.com>2015-07-14 09:05:44 -0400
commit0ffa3943fbd100e7de7b1ddbfd301ddc52b57410 (patch)
tree1a431591a867e454f108d63b62d71338c6a15058
parent561c018d88203826cb9fd370e03a28e829871b75 (diff)
Fixed #25097 -- Added BaseModelFormSet.delete_existing() hook.
-rw-r--r--django/forms/models.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/django/forms/models.py b/django/forms/models.py
index c08abee309..31e4bbaa66 100644
--- a/django/forms/models.py
+++ b/django/forms/models.py
@@ -632,6 +632,11 @@ class BaseModelFormSet(BaseFormSet):
"""Saves and returns an existing model instance for the given form."""
return form.save(commit=commit)
+ def delete_existing(self, obj, commit=True):
+ """Deletes an existing model instance."""
+ if commit:
+ obj.delete()
+
def save(self, commit=True):
"""Saves model instances for every form, adding and changing instances
as necessary, and returns the list of instances.
@@ -756,8 +761,7 @@ class BaseModelFormSet(BaseFormSet):
if obj.pk is None:
continue
self.deleted_objects.append(obj)
- if commit:
- obj.delete()
+ self.delete_existing(obj, commit=commit)
elif form.has_changed():
self.changed_objects.append((obj, form.changed_data))
saved_instances.append(self.save_existing(form, obj, commit=commit))