我有以下问题:
我有两个模型:文章和评论,在评论中,我有parent = models.ForeignKey(文章)。我已将其设置为使注释与ArticleAdmin(admin.ModelAdmin)和CommentInline(admin.StackedInline)内联。我想要的是文章列表视图(在list_display中选择的元素),我想显示最新评论的片段,以便用户不必点击每个单独的评论来查看更改。现在我知道我可以在list_display中指定一个函数,但我不知道如何在函数中轻松完成我想做的事。
任何人都有任何关于如何实现这一目标的建议?
非常感谢你的帮助!
答案 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>
标记分隔,以便在每一行上显示