2011-07-31 3 views
0

にコメントフラグを管理するには、私はDjangoのコメントフレームワークが有効になっている、と私は設定したURLにフラグを立てるいますはどのようにジャンゴ

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

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

答えて

5

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

私はメインのappディレクトリ内admin.pyファイルを作成しDjango - Extending another apps ModelAdmin?

からいくつかのヒントを使用していました。ここでの内容は次のとおりです。

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) 

これは、1つが存在する場合は、コメントの最初のフラグの名前が表示される、「旗」と呼ばコメント一覧に列を追加します。 list_filter行は管理サイトの右側に新しいフィルタを追加し、特定のフラグだけを表示することができます。