Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django更改/覆盖模型中的删除链接_Python_Django_Django Admin - Fatal编程技术网

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

Python Django更改/覆盖模型中的删除链接,python,django,django-admin,Python,Django,Django Admin,我有一个模型,我正在使用Django管理页面来维护它。我做了一个自定义的删除操作,因为还有一些额外的步骤要执行。这意味着我可以通过自定义视图选择列表和删除 我遇到的问题是,如果我单击模型的单个实例,您将在其中编辑它,则会出现一个“删除”按钮,该按钮指向管理员自己的删除url: '/admin/myapp/mymodel/31/delete/' 如何使此删除按钮指向我的自定义删除视图,而不是管理员默认视图?您可以覆盖submit\u line.html文件中的删除url。该文件可以在django

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

我遇到的问题是,如果我单击模型的单个实例,您将在其中编辑它,则会出现一个“删除”按钮,该按钮指向管理员自己的删除url:

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

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

您可以覆盖
submit\u line.html
文件中的删除url。该文件可以在django安装的
/django/contrib/admin/templates/admin/
文件夹中找到。将此文件复制到您的templates文件夹,使其看起来像
/your\u templates\u folder/admin/submit\u 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 %}

只需在同一url上进行查看,并将其放在urlconf中的
admin
之前。

谢谢。几乎让一切正常,但遇到了困难。似乎由于Django 1.4,我无法覆盖每个应用程序,这对我来说是个问题。为了解决这个问题,我在管理模型中的change\u视图中添加了一些额外的上下文,并希望切换基于变量显示的delete。请求上下文似乎无法完成此模板。该变量在视图中调用的其他一些管理模板中可用(令人烦恼)。有什么办法解决这个问题吗?好的,我在{%block submit\u buttons\u bottom%}中加入了我模型的按钮的半硬编码版本。它不漂亮,但很好用。这个模板的上下文似乎很奇怪,因为它在if语句中使用的变量也不可用
{% if show_delete_link %}
    <p class="deletelink-box">
        <a href="/your_delete_link/{{ original.pk }}/" class="deletelink">
            {% trans "Deleted" %}
        </a>
    </p>
{% endif %}