2010-06-15 56 views
3

我有以下問題:如何在list_display中顯示內聯元素?

我有兩個模型:文章和評論,在評論中,我有parent = models.ForeignKey(Article)。我建立了這樣的評論是內聯到ArticleAdmin(admin.ModelAdmin)和CommentInline(admin.StackedInline)。我想要的是對於文章列表視圖(在list_display中選擇的元素),我想顯示最新評論片段,以便用戶不必點擊每個單獨的評論來查看更改。現在我知道我可以在list_display中指定一個函數,但是我不知道如何做到我希望在函數中輕鬆完成的任務。

任何人有任何建議如何去完成這個?

非常感謝您的幫助!

回答

3

正如你所說,定義一個函數是要走的路 - 這需要對象作爲參數和返回的最新註釋字符串表示的的ModelAdmin類的定製方法:

class ArticleAdmin(admin.ModelAdmin): 
    list_display = ('name', 'latest_comments') 

    def latest_comments(self, obj): 
     return '<br/>'.join(c.comment for c in obj.comment_set.order_by('-date')[:3]) 
    latest_comments.allow_tags = True 

這需要每篇文章的最後三條評論按「日期」字段排序,並顯示每個文章的comment字段,用HTML <br>標記分隔,以在每行上顯示。