2012-02-07 14 views
0

コメントの変更リストと詳細ビューをdjango管理者でオーバーライドして、コメントされたブログ投稿のタイトルなど、コメントされたオブジェクトの文字列表現を取得することはできますか?オブジェクトIDに並んでいますか?私はオブジェクトIDがfrom here来ると仮定します。私はそのオブジェクトIDを照会でき、コメントが添付されている場所からタイトルを表示できるかどうかを調べたいと思っています。変更のコメントを変更する変更リスト

答えて

2

@ mipadiさんのアドバイス__unicode__の使用に関するアドバイスは引き続き適用されます。コメントフレームワークは汎用の外部キーを使用するため、モデルの特定のフィールド名(例えばtitleなど)に直接依存することは悪い考えです。 1つの一般的に関連するオブジェクトにフィールドがない場合、すべてがクラッシュする可能性があります。代わりに__unicode__に依存している場合(これはどのモデルにも追加する必要があります)、信頼性が大幅に向上します。

以下のコードは、関連オブジェクトのユニコード表現をコメントチェンジリストに追加する方法を詳しく説明しています。デフォルトのCommentsAdminをサブクラス化し、関連オブジェクトのユニコード表現を返すメソッドを追加し、のデフォルトobject_pkをそのメソッドに置き換える必要があります。

from django.contrib.comments.models import Comment 
from django.contrib.comments.admin import CommentsAdmin 

class CustomCommentsAdmin(CommentsAdmin): 
    list_display = ('name', 'content_type', 'object_title', 'ip_address', 'submit_date', 'is_public', 'is_removed') 

    def object_title(self, obj): 
     return unicode(obj.content_object) 
    object_title.short_description = 'Title' 
    object_title.admin_order_field = 'content_pk' 

admin.site.unregister(Comment) 
admin.site.register(Comment, CustomCommentsAdmin) 
+0

これは素晴らしいです、クリス – JeffC

関連する問題