0

私はdjangoのコメントフレームワークを有効にしており、フラグ付きのURLを設定しています:

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

コメントが登録され、データベースに表示されます。ただし、管理インターフェイスには表示されません。理想的なのは、管理インターフェイスでコメントの「フラグ付き」ステータスのフィルターを追加することですが、これを行う方法が正確にはわかりません。

4

1 に答える 1

5

あなたの質問を見つけたとき、私はこの正確な問題の解決策を探していました。

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行は、管理サイトの右側に新しいフィルターを追加して、特定のフラグのみを表示できるようにします。

于 2011-12-01T08:23:52.817 に答える