diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index bdd988f4c7..5b574d038a 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -1684,7 +1684,7 @@ class ModelAdmin(BaseModelAdmin): (deleted_objects, model_count, perms_needed, protected) = get_deleted_objects( [obj], opts, request.user, self.admin_site, using) - if request.POST: # The user has already confirmed the deletion. + if request.POST and not protected: # The user has confirmed the deletion. if perms_needed: raise PermissionDenied obj_display = force_text(obj) diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index a6b77dd44b..a0c7e51c2b 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -2062,6 +2062,18 @@ class AdminViewDeletedObjectsTest(TestCase): '