簡體   English   中英

添加自定義Django管理員操作

[英]Add custom Django admin action

我正在尋找向Django管理員更改頁面添加自定義操作的方法。 不是在尋找可以添加到概述中下拉框中的操作。

我的Django應用程序中的一個模型包含有關文檔的信息,這些文檔在前端自動編譯為PDF文件。 我想讓管理員直接從更改頁面快速呈現PDF,以便快速檢查結果。

我已經玩過覆蓋change_form.html / submit_line.html,添加按鈕絕對沒問題。 但我想知道如何以干凈的方式擴展管理模塊,以便它包含我的自定義操作。

由於自定義管理員視圖基本上只是普通視圖,因此沒有太多專業。 為了更清潔的集成,您應該考慮以下幾點:

  • 通過添加URL模式get_urls()中的AdminSite
  • 在呈現子類管理模板的模板時,為RequestContextContext提供current_app參數。

編輯

在這里找到了一個例子: http//shrenikp.webs.com/apps/blog/show/5211522-add-custom-view-method-for-django-admin-model-

注意,該示例不使用我提到的current_app參數。 我想您生成PDF的視圖只返回具有適當內容類型的HttpResponse ,而不是使用Context呈現響應,因此不需要它。 總而言之, current_app僅在您自定義視圖使用的管理模板的子類化時才有意義,該模板實際上在某處使用了current_app

該示例在ModelAdmin封裝了URL和視圖。 也可以通過AdminSite子類來完成此AdminSite ,但至少在您的用例中這可能是矯枉過正。

順便說一下,覆蓋應用程序的change_form.html模板,將按鈕添加到標准更改視圖就可以了。 在管理員中沒有特殊的api(不幸的是)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM