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

时间:2013-10-24 13:10:47

标签: python django django-admin

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

我遇到的问题是,如果我点击模型的单个实例,你可以在哪里编辑它,那么有一个删除按钮指向管理员自己的删除网址:

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

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

2 个答案:

答案 0 :(得分:2)

您可以覆盖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 %}

答案 1 :(得分:0)

只需在同一个网址上创建视图,然后将其放在urlconf中的admin之前。