2011-07-22 49 views
3

在我的django應用程序中,我們使我們的客戶端能夠自定義他們的網頁。 爲了做到這一點,我創建了一個模型來生成模板,它實際上工作正常。我的問題是,我想添加一個預覽鏈接到管理員表單。 這樣我可以做到「保存並繼續編輯」來保存模板,如果我想要,我可以點擊此鏈接在編輯頁面時預覽它。添加一個額外的鏈接,以Django管理員的形式預覽您的對象

我已經從列表顯示中激活了預覽,但是我希望這個字段直接顯示到表單中。

def get_absolute_url(self): 
      return "preview/%i/" % self.id 

    def preview_template(self): 
     return '<a href="' + self.get_absolute_url() + '" target="_blank">Preview</a>' 
    preview_template.allow_tags = True 
    preview_template.short_description = 'Preview' 

    class BlockPageAdmin(admin.ModelAdmin): 
    list_display = (... 'preview_template',) 

這是行得通的,但有沒有辦法將它直接添加到更新表單中?

UPDATE

我得到了它在這個問題之後的主要思想工作:Adding an extra button to one object in django admin

我最終加入的JavaScript文件在我的模型的管理配置,我寫了一個javascript函數生成預覽對象的網址。我不得不寫一個視圖來顯示我希望的預覽。與帖子上的解決方案不同的是,我做了一個Button而不是提交輸入,加上我的javascript打開預覽頁面的彈出窗口。因此,您仍然保留在管理界面中,您可以在預覽更改時隨時更新模型。

謝謝!

回答

1

您可以覆蓋change_form的模板,也可以添加鏈接到對象工具,這是放置「預覽」鏈接的常用位置。事實上,Django管理員爲在同一地點定義了get_absolute_url的模型提供「View on site」預覽鏈接。

+0

這是一件很好的事情要知道,但我不能在這種情況下使用它,因爲我添加了兩個按鈕用於預覽標準網頁和另一個用於移動版本。謝謝! – DoRivard

相關問題