diff options
| author | Shubh1815 <shubhparmar14@gmail.com> | 2022-09-24 15:42:28 +0530 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-10-06 20:44:07 +0200 |
| commit | 7a39a691e1e3fe13588c8885a222eaa6a4648d01 (patch) | |
| tree | cb85748e1c27ae2acaa3c2e3db5585f97f2641e0 /django/contrib/admin/options.py | |
| parent | c6350d594c359151ee17b0c4f354bb44f28ff69e (diff) | |
Fixed #32603 -- Made ModelAdmin.list_editable use transactions.
Diffstat (limited to 'django/contrib/admin/options.py')
| -rw-r--r-- | django/contrib/admin/options.py | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 5f07a4208a..215df9a059 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -2011,15 +2011,17 @@ class ModelAdmin(BaseModelAdmin): ) if formset.is_valid(): changecount = 0 - for form in formset.forms: - if form.has_changed(): - obj = self.save_form(request, form, change=True) - self.save_model(request, obj, form, change=True) - self.save_related(request, form, formsets=[], change=True) - change_msg = self.construct_change_message(request, form, None) - self.log_change(request, obj, change_msg) - changecount += 1 - + with transaction.atomic(using=router.db_for_write(self.model)): + for form in formset.forms: + if form.has_changed(): + obj = self.save_form(request, form, change=True) + self.save_model(request, obj, form, change=True) + self.save_related(request, form, formsets=[], change=True) + change_msg = self.construct_change_message( + request, form, None + ) + self.log_change(request, obj, change_msg) + changecount += 1 if changecount: msg = ngettext( "%(count)s %(name)s was changed successfully.", |
