2010-03-19 97 views
2

我有一個ModelAdmin,我需要插入一些不是模型的一部分的html代碼片段(它是一個java-applet)。有沒有辦法做到這一點?在ModelAdmin中添加片段

回答

2

你有幾個選項。如果小程序與其中一個表單域相關,則可以創建一個包含該小程序的自定義小部件。另一種方法是覆蓋模型更改表單使用的模板幷包含小程序。該模板應位於admin/app_name/model_name/change_form.html的模板目錄中,其中app_namemodel_name將替換爲適用於您的模型的值。

+0

嗨,感謝您的建議,我認爲第二個將爲我工作。只有一個問題:我可以訪問模板中的對象嗎?例如{{object.id}}不起作用 – schneck 2010-03-19 17:24:27

+0

明白了:{{original.xxx}}謝謝! – schneck 2010-03-19 17:31:21

1

我傾向於做這樣的事情,這是一個很值得你彷彿想了很多:

class SomeModelAdmin(admin.ModelAdmin): 
    ... 
    list_display = (
     'visible', 
     'thumbnail', 
     'size', 
     'url', 
    ) 
    ... 

    def thumbnail(self, obj): 
     return u'<img src="%s" />' % obj.url 

    thumbnail.allow_tags = True 

...等瞧,即席HTML片段。 obj是有問題的模型實例。就個人而言,我發現這比無止境地分類Widgets,ModelForms等更靈活 - 你的里程可能取決於你對管理網站做什麼,或者如果你是更正統的面向對象的說服,知道如何在任何情況下做到這一點很有幫助。

+2

我知道這種技術,但它只適用於列表,而不是詳細頁面。 – schneck 2010-03-21 21:23:54