如何在list_display中显示内联元素?

时间:2010-06-15 18:04:10

标签: django django-admin

我有以下问题:

我有两个模型:文章和评论,在评论中,我有parent = models.ForeignKey(文章)。我已将其设置为使注释与ArticleAdmin(admin.ModelAdmin)和CommentInline(admin.StackedInline)内联。我想要的是文章列表视图(在list_display中选择的元素),我想显示最新评论的片段,以便用户不必点击每个单独的评论来查看更改。现在我知道我可以在list_display中指定一个函数,但我不知道如何在函数中轻松完成我想做的事。

任何人都有任何关于如何实现这一目标的建议?

非常感谢你的帮助!

1 个答案:

答案 0 :(得分: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>标记分隔,以便在每一行上显示