我有一個模型,我使用Django管理頁面來維護。我做了一個自定義的刪除操作,因爲有一些額外的步驟要執行。這意味着我可以選擇列表並通過自定義視圖進行刪除。Django更改/覆蓋模型中的刪除鏈接
我遇到的問題是,如果我點擊模型,在那裏你會編輯的一個實例,存在被指向到管理員刪除按鈕刪除自己的網址:
'/admin/myapp/mymodel/31/delete/'
如何使此刪除按鈕指向我的自定義刪除視圖,而不是管理員默認?
我有一個模型,我使用Django管理頁面來維護。我做了一個自定義的刪除操作,因爲有一些額外的步驟要執行。這意味着我可以選擇列表並通過自定義視圖進行刪除。Django更改/覆蓋模型中的刪除鏈接
我遇到的問題是,如果我點擊模型,在那裏你會編輯的一個實例,存在被指向到管理員刪除按鈕刪除自己的網址:
'/admin/myapp/mymodel/31/delete/'
如何使此刪除按鈕指向我的自定義刪除視圖,而不是管理員默認?
您可以覆蓋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
網址更改爲您選擇的刪除URL。例如
{% if show_delete_link %}
<p class="deletelink-box">
<a href="/your_delete_link/{{ original.pk }}/" class="deletelink">
{% trans "Deleted" %}
</a>
</p>
{% endif %}
只要在同一個網址上查看,並將其放在urlconf中的admin
之前。
感謝您的支持。幾乎找到了工作,但遇到了困難。看起來,自從Django 1.4我不能覆蓋這個每個應用程序,這對我來說是一個問題。爲了解決這個問題,我在admin模型的change_view中添加了一些extra_context,並且想要根據變量顯示哪個delete被顯示。看起來請求上下文並沒有完成這個模板。該變量(令人討厭地)在視圖中調用的其他一些管理模板中可用。任何想法如何解決這個問題? – joeButler
好吧,我已經爲我的模型添加了半硬編碼版本的按鈕{%block submit_buttons_bottom%}。它不漂亮,但它工作正常。看起來這個模板的上下文很奇怪,因爲它在if語句中使用的變量也不可用 – joeButler