2011-07-31 53 views
0

评论标志启用Django的评论框架,我已经标记设置网址:我如何管理在Django

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

的意见是注册,并显示在数据库中。但是,它们并未出现在管理界面中。最理想的是在管理界面添加评论“已标记”状态的过滤器,但我不确定如何执行此操作。

回答

5

当我发现你的问题时,我正在寻找解决这个确切问题的方法。

我使用了一些技巧从Django - Extending another apps ModelAdmin?

我创建了主要的应用程序目录中的文件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) 

这将添加一列名为“国旗”的评论列表,该列表会显示在注释的第一标志的名称,如果存在的话。 list_filter行在管理站点的右侧添加了一个新的过滤器,您可以只显示特定的标志。