【问题标题】:How to administer comment flags in django如何在 django 中管理评论标志
【发布时间】:2011-07-31 16:02:34
【问题描述】:

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

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

cmets 已注册,并出现在数据库中。但是,它们没有出现在管理界面中。理想的做法是在管理界面中为评论“已标记”状态添加过滤器,但不知道具体该怎么做。

【问题讨论】:

    标签: django django-admin django-comments


    【解决方案1】:

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

    我使用了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 行在管理站点的右侧添加了一个新过滤器,允许您仅显示特定标志。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-05
      • 2014-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-20
      相关资源
      最近更新 更多