扩展 Django 管理员删除确认页面

Extending Django admin delete confirmation page

我想知道是否可以为特定应用程序和模型扩展 Django Admin 的删除确认页面。我想要使​​用户能够像 django 管理界面那样删除所有记录的功能。可以在我的应用程序

中扩展删除 confirmation.html

您可以扩展 Django 管理员删除确认页面。要扩展它,请在您的模板目录中创建一个名为 admin 的目录并创建一个名为 delete_selected_confirmation.html 的 html 文件,其中包含以下内容 (the default admin delete confirmation page source)

{% extends "admin/base_site.html" %}
{% load i18n l10n admin_urls static %}

{% block extrahead %}
    {{ block.super }}
    {{ media }}
    <script src="{% static 'admin/js/cancel.js' %}" async></script>
{% endblock %}

{% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} delete-confirmation delete-selected-confirmation{% endblock %}

{% block breadcrumbs %}
<div class="breadcrumbs">
<a href="{% url 'admin:index' %}">{% translate 'Home' %}</a>
&rsaquo; <a href="{% url 'admin:app_list' app_label=opts.app_label %}">{{ opts.app_config.verbose_name }}</a>
&rsaquo; <a href="{% url opts|admin_urlname:'changelist' %}">{{ opts.verbose_name_plural|capfirst }}</a>
&rsaquo; {% translate 'Delete multiple objects' %}
</div>
{% endblock %}

{% block content %}
{% if perms_lacking %}
    <p>{% blocktranslate %}Deleting the selected {{ objects_name }} would result in deleting related objects, but your account doesn't have permission to delete the following types of objects:{% endblocktranslate %}</p>
    <ul>
    {% for obj in perms_lacking %}
        <li>{{ obj }}</li>
    {% endfor %}
    </ul>
{% elif protected %}
    <p>{% blocktranslate %}Deleting the selected {{ objects_name }} would require deleting the following protected related objects:{% endblocktranslate %}</p>
    <ul>
    {% for obj in protected %}
        <li>{{ obj }}</li>
    {% endfor %}
    </ul>
{% else %}
    <p>{% blocktranslate %}Are you sure you want to delete the selected {{ objects_name }}? All of the following objects and their related items will be deleted:{% endblocktranslate %}</p>
    {% include "admin/includes/object_delete_summary.html" %}
    <h2>{% translate "Objects" %}</h2>
    {% for deletable_object in deletable_objects %}
        <ul>{{ deletable_object|unordered_list }}</ul>
    {% endfor %}
    <form method="post">{% csrf_token %}
    <div>
    {% for obj in queryset %}
    <input type="hidden" name="{{ action_checkbox_name }}" value="{{ obj.pk|unlocalize }}">
    {% endfor %}
    <input type="hidden" name="action" value="delete_selected">
    <input type="hidden" name="post" value="yes">
    <input type="submit" value="{% translate 'Yes, I’m sure' %}">
    <a href="#" class="button cancel-link">{% translate "No, take me back" %}</a>
    </div>
    </form>
{% endif %}
{% endblock %}

现在目录和文件结构应该如下所示。现在您可以根据需要扩展上述模板。

├── templates
    └──  admin
        └── delete_selected_confirmation.html