2013-02-11 168 views
11

我正在尋找將自定義操作添加到Django管理更改頁面的方法。我是而不是正在尋找可添加到總覽下拉框中的操作。添加自定義Django管理操作

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

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

回答

4

由於自定義管理視圖基本上只是普通視圖,所以沒有太多特色。你應該考慮一個更清潔的整合有幾件事情:

  • 通過AdminSiteget_urls()添加URL模式。
  • 提供RequestContextContextcurrent_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中。也可以通過AdminSite子類來做到這一點,但至少在你的用例中這可能是矯枉過正的。

順便說一下,覆蓋change_form.html模板爲您的應用程序添加按鈕到標準更改視圖就好了。在管理員中沒有特別的API(不幸)。

+0

謝謝,但我想我只是沒有足夠的經驗來利用你的答案。網絡上有沒有例子? – stschindler 2013-02-11 15:37:02

+0

我已更新我的答案並添加了一個示例鏈接。 – 2013-02-11 16:55:34

相關問題