2011-09-01 43 views
2

如果我有這樣的ModelAdmin的:Django的 - 包括媒體到特定的管理頁面

admin.py

#... 
class ScribPartAdmin(admin.ModelAdmin): 
    class Media: 
    css = { 
     'all': ('css/mymarkup.css',) 
    } 

admin.site.register(ScribPart, ScribPartAdmin) 
#... 

mymarkup.css實際上已包含在有關的對象ScribPart的所有頁面。

如何指定在哪個change_formchange_listadd_form,...模板我需要這個CSS?

回答

3

據我所知,您需要覆蓋這些視圖的模板文件。您可以繼承默認的模板文件,只需將您的自定義CSS添加到extrahead塊中即可。

+0

你的意思是覆蓋'my_project/template/admin/my_app/scribpart/change_form.html'是唯一的方法嗎? –

+0

對於更改表單模板,您可以使用您問題中包含的代碼。但對於所有其他視圖,我相信你需要重寫模板。 –

+1

@Glide,爲什麼不呢?模板是一個正確的地方使用CSS和覆蓋它們[很容易](https://docs.djangoproject.com/en/1.3/ref/contrib/admin/#overriding-admin-templates)。無論如何,[文檔](https://docs.djangoproject.com/en/1.3/ref/contrib/admin/#modeladmin-media-definitions)表示在所有添加/更改管理視圖中使用了'ModelAdmin'的媒體定義。 – Kirill

0

您可以加載.js文件,爲每個頁面加載特定的css文件。