0
评论标志启用Django的评论框架,我已经标记设置网址:我如何管理在Django
comments/flag/{{comment.id}}/
的意见是注册,并显示在数据库中。但是,它们并未出现在管理界面中。最理想的是在管理界面添加评论“已标记”状态的过滤器,但我不确定如何执行此操作。
评论标志启用Django的评论框架,我已经标记设置网址:我如何管理在Django
comments/flag/{{comment.id}}/
的意见是注册,并显示在数据库中。但是,它们并未出现在管理界面中。最理想的是在管理界面添加评论“已标记”状态的过滤器,但我不确定如何执行此操作。
当我发现你的问题时,我正在寻找解决这个确切问题的方法。
我使用了一些技巧从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行在管理站点的右侧添加了一个新的过滤器,您可以只显示特定的标志。