2015-09-27 30 views
3

我想在Django的管理員中的更改列表上做一些CSS自定義。更具體地說就是表格結果。覆蓋Django 1.8中的現有模板標記方法

我想添加一些CSS和標記到表的td s。

的問題是,該代碼部分的模板標籤(django/contrib/admin/templatetags/admin_list.py)藏在裏面,而不是在模板本身(/templates/admin/change_list_results.html

我能夠覆蓋模板並做出一些變化,但我真的需要知道如何將模板標籤「繼承」到我的項目目錄,而不是直接將更改應用到Django的模板標籤目錄。

我嘗試了以下這些建議,但沒有一個對我起作用。

Extending Django Admin Templates - altering change list

我確定,這些變化需要items_for_result方法裏面做的admin_list.py內。

事情是如何被覆蓋? items_for_result是一種內部方法,它未在標籤庫中註冊,因此無法從模板中調用。

所以:我如何覆蓋它並告訴Django不要使用舊的方法,但我指出的方法?

回答

0

恐怕這種改變不能輕易完成。要覆蓋此方法,您需要修改Django源代碼。雖然不推薦。

如果只是CSS/HTML更改,可以通過添加JavaScript樣式來完成。有一種簡單的方法可以通過創建自定義表單並將新的JS文件添加到Meta類來將自定義JS添加到管理員。

查看docs和示例here

+0

感謝Mr. Coffee先生,是的,我最近一直在使用表單並且一直在寫我自己的小部件。這已經解決了我的問題,儘管覆蓋任何Django類或方法而不覆蓋源代碼會很好。 –