diff --git a/django/contrib/admin/actions.py b/django/contrib/admin/actions.py index 6e52e34d947..c68184a7682 100644 --- a/django/contrib/admin/actions.py +++ b/django/contrib/admin/actions.py @@ -52,9 +52,19 @@ def delete_selected(modeladmin, request, queryset): # Return None to display the change list page again. return None + if len(queryset) == 1: + objects_name = force_unicode(opts.verbose_name) + else: + objects_name = force_unicode(opts.verbose_name_plural) + + if perms_needed or protected: + title = _("Cannot delete %(name)s") % {"name": objects_name} + else: + title = _("Are you sure?") + context = { - "title": _("Are you sure?"), - "object_name": force_unicode(opts.verbose_name), + "title": title, + "objects_name": objects_name, "deletable_objects": [deletable_objects], 'queryset': queryset, "perms_lacking": perms_needed, diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index f51070ca67a..4ad21eb42b9 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -1193,9 +1193,16 @@ class ModelAdmin(BaseModelAdmin): return HttpResponseRedirect("../../../../") return HttpResponseRedirect("../../") + object_name = force_unicode(opts.verbose_name) + + if perms_needed or protected: + title = _("Cannot delete %(name)s") % {"name": object_name} + else: + title = _("Are you sure?") + context = { - "title": _("Are you sure?"), - "object_name": force_unicode(opts.verbose_name), + "title": title, + "object_name": object_name, "object": obj, "deleted_objects": deleted_objects, "perms_lacking": perms_needed, diff --git a/django/contrib/admin/templates/admin/delete_confirmation.html b/django/contrib/admin/templates/admin/delete_confirmation.html index db4ef627b76..0e6d47e68d1 100644 --- a/django/contrib/admin/templates/admin/delete_confirmation.html +++ b/django/contrib/admin/templates/admin/delete_confirmation.html @@ -22,7 +22,7 @@ {% endif %} {% if protected %} -

{% blocktrans with object as escaped_object %}Deleting the {{ object_name }} '{{ escaped_object }}' is not possible, because it would require deleting the following protected related objects:{% endblocktrans %}

+

{% blocktrans with object as escaped_object %}Deleting the {{ object_name }} '{{ escaped_object }}' would require deleting the following protected related objects:{% endblocktrans %}