python - Django 更改/覆盖模型中的删除链接

标签 python django django-admin

我有一个模型,我正在使用 Django 管理页面来维护。我做了一个自定义删除操作,因为需要执行一些额外的步骤。这意味着我可以通过自定义 View 选择列表并删除。

我遇到的问题是,如果我单击模型的单个实例(您可以在其中对其进行编辑),则会有一个删除按钮,该按钮指向管理员自己的删除网址:

'/admin/myapp/mymodel/31/delete/'

如何使此删除按钮指向我的自定义删除 View ,而不是管理员默认 View ?

最佳答案

您可以覆盖 submit_line.html 文件中的删除网址。该文件可以在 django 安装的 /django/contrib/admin/templates/admin/ 文件夹中找到。将此文件复制到您的模板文件夹,使其看起来像 /your_templates_folder/admin/submit_line.html。显示删除按钮的行是

{% if show_delete_link %}
    <p class="deletelink-box">
        <a href="{% url opts|admin_urlname:'delete' original.pk|admin_urlquote %}" class="deletelink">
            {% trans "Delete" %}
        </a>
    </p>
{% endif %}

您可以将 href 网址更改为您选择的删除网址。例如

{% if show_delete_link %}
    <p class="deletelink-box">
        <a href="/your_delete_link/{{ original.pk }}/" class="deletelink">
            {% trans "Deleted" %}
        </a>
    </p>
{% endif %}

关于python - Django 更改/覆盖模型中的删除链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19566907/

相关文章:

python - 我如何告诉 django-admin 使用哪个设置模块?

python - 将 FileType 与 django 自定义管理命令一起使用?

python - 如何在 Python curses 中创建菜单和子菜单?

Python Django : No module named security

python - 无法查询 "user": Must be "Model" instance

Django 将管理页面标签 'Auth' 更改为 'Authentication'

Django 管理员 : how to sort by one of the custom list_display fields that has no database field

python - 串行端口上下文管理器

Python - 加入多个线程超时

python - 每月第一天的 Paypal 每月订阅计划设置并每月定期付款 - django python