Как управлять флагами комментариев в Django - PullRequest
0 голосов
/ 31 июля 2011

У меня включена инфраструктура комментариев django, и у меня установлены помеченные URL:

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

Комментарии зарегистрированы и появляются в базе данных. Однако они не отображаются в интерфейсе администратора. Что было бы идеально, так это добавить фильтр для статуса комментария «помеченный» в интерфейсе администратора, но я не уверен, как именно это сделать.

1 Ответ

5 голосов
/ 01 декабря 2011

Я искал решение именно этой проблемы, когда нашел ваш вопрос.

Я использовал несколько советов от Django - Расширение других приложений 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 добавляет новый фильтр справа от сайта администратора, который позволяет вам просто показывать определенные флаги.

...