Изменить список комментариев - PullRequest
0 голосов
/ 08 февраля 2012

Можно ли переопределить список изменений комментариев и подробный вид в администраторе django, чтобы я мог получить строковое представление прокомментированного объекта, такого как заголовок поста в блоге, который был прокомментирован, применительно к идентификатору объекта?Я предполагаю, что Идентификатор объекта приходит отсюда Я хочу посмотреть, смогу ли я запросить этот идентификатор объекта и отобразить заголовок, к которому прикреплен комментарий.

1 Ответ

2 голосов
/ 08 февраля 2012
Совет

@ mipadi по использованию __unicode__ остается в силе. Поскольку структура комментариев использует общие внешние ключи, полагаться на конкретное имя поля в модели (например, title) - плохая идея. Если один родственный объект не имеет поля, все рухнет. Если вместо этого вы полагаетесь на __unicode__ (который в любом случае следует добавлять к каждой модели), вы получите гораздо большую надежность.

В приведенном ниже коде подробно описано, как добавить Unicode-представление связанного объекта в список изменений комментариев. Требуется создать подкласс по умолчанию CommentsAdmin, добавить метод для возврата представления связанного объекта в Юникоде, а затем заменить этот метод по умолчанию object_pk в list_display.

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)
...