diff options
| author | Becky Smith <rebkwok@gmail.com> | 2017-03-30 10:13:15 +0100 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-02-24 20:41:43 -0500 |
| commit | 8116e588dbdd17171a322da589b691bdf01f7041 (patch) | |
| tree | c46f319b831339ec9ee665e850f89bc3f3a169e0 /django | |
| parent | 9822d88ca0dd855a668f9c33447aeac45a9768ac (diff) | |
Fixed #17962 -- Added ModelAdmin.get_deleted_objects().
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/actions.py | 6 | ||||
| -rw-r--r-- | django/contrib/admin/options.py | 11 |
2 files changed, 10 insertions, 7 deletions
diff --git a/django/contrib/admin/actions.py b/django/contrib/admin/actions.py index d4bc3daf85..f64b89205e 100644 --- a/django/contrib/admin/actions.py +++ b/django/contrib/admin/actions.py @@ -4,7 +4,7 @@ Built-in, globally-available admin actions. from django.contrib import messages from django.contrib.admin import helpers -from django.contrib.admin.utils import get_deleted_objects, model_ngettext +from django.contrib.admin.utils import model_ngettext from django.core.exceptions import PermissionDenied from django.template.response import TemplateResponse from django.utils.translation import gettext as _, gettext_lazy @@ -29,9 +29,7 @@ def delete_selected(modeladmin, request, queryset): # Populate deletable_objects, a data structure of all related objects that # will also be deleted. - deletable_objects, model_count, perms_needed, protected = get_deleted_objects( - queryset, request.user, modeladmin.admin_site, - ) + deletable_objects, model_count, perms_needed, protected = modeladmin.get_deleted_objects(queryset, request) # The user has already confirmed the deletion. # Do the deletion and return None to display the change list view again. diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index f9f5f85ef3..bbc402bd74 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -1728,6 +1728,13 @@ class ModelAdmin(BaseModelAdmin): 'admin/change_list.html' ], context) + def get_deleted_objects(self, objs, request): + """ + Hook for customizing the delete process for the delete view and the + "delete selected" action. + """ + return get_deleted_objects(objs, request.user, self.admin_site) + @csrf_protect_m def delete_view(self, request, object_id, extra_context=None): with transaction.atomic(using=router.db_for_write(self.model)): @@ -1752,9 +1759,7 @@ class ModelAdmin(BaseModelAdmin): # Populate deleted_objects, a data structure of all related objects that # will also be deleted. - deleted_objects, model_count, perms_needed, protected = get_deleted_objects( - [obj], request.user, self.admin_site, - ) + deleted_objects, model_count, perms_needed, protected = self.get_deleted_objects([obj], request) if request.POST and not protected: # The user has confirmed the deletion. if perms_needed: |
