如何管理django中的注释标志

时间:2011-07-31 16:02:35

标签: django django-admin django-comments

我启用了django的评论框架,并设置了标记网址:

comments/flag/{{comment.id}}/

注释已注册,并显示在数据库中。但是,它们不会出现在管理界面中。最理想的是在管理界面中为评论'flagged'状态添加过滤器,但我不确定如何做到这一点。

1 个答案:

答案 0 :(得分:5)

当我找到你的问题时,我正在寻找解决这个问题的方法。

我使用了Django - Extending another apps ModelAdmin?

中的一些提示

我在主app目录中创建了一个admin.py文件。以下是内容:

from django.contrib import admin
from django.contrib.admin.sites import NotRegistered
from django.contrib.comments.models import Comment

try:
    admin.site.unregister(Comment)
except NotRegistered:
    pass

from django.contrib.comments.admin import CommentsAdmin

try:
    admin.site.unregister(Comment)
except NotRegistered:
    pass

class MyCommentsAdmin(CommentsAdmin):

    def flag(self, obj):
        flag_name = ''
        try:
            flag_name = obj.flags.values()[0]['flag']
        except IndexError:
            pass
        return flag_name

    list_display = ('name', 'content_type', 'object_pk', 'ip_address', 'submit_date', 'flag', 'is_public', 'is_removed')
    list_filter = ('submit_date', 'site', 'is_public', 'is_removed', 'flags__flag')

admin.site.register(Comment, MyCommentsAdmin)

这将在Comment列表中添加一个名为“Flag”的列,该列将显示注释中第一个标志的名称(如果存在)。 list_filter行在管理站点的右侧添加了一个新的过滤器,允许您只显示特定的标志。