Как отображать комментарии в Django Admin? - PullRequest
1 голос
/ 08 ноября 2010

Я использую django.contrib.comments для предоставления пользователям возможности комментировать блог. Как можно сделать так, чтобы комментарии отображались в Django Admin / admin / comments / comment / и делали их кликабельными для редактирования?

[Здесь должно быть изображение, но так как это мой первый вопрос, и я не имею права, я не могу включать изображения]

К комментариям можно получить доступ через / admin / comments / comment / comment_id / и редактировать без проблем.

Есть идеи, как это решить?

Ответы [ 3 ]

1 голос
/ 09 ноября 2010

Глядя на django.contrib.comments.admin, он уже должен отображаться в вашей панели администратора, если вы добавили django.contrib.comments в INSTALLED_APPS.

РЕДАКТИРОВАТЬ:

Второй взгляд на admin.py из приложения "Комментарии" показал, что CommentsAdmin.list_display не содержит сам комментарий.Таким образом, я бы либо унаследовал от этого CommentsAdmin, переопределил list_display, а затем отменил регистрацию и перерегистрацию комментария в MyNewCommentsAdmin - либо я бы просто сделал патч CommentsAdmin.Все, что работает.

0 голосов
/ 09 марта 2013

добавить к ответу Мейло:

если вы используете стандартную структуру комментария (например: #in url.py

url(r'^comments/', include('django.contrib.comments.urls')),

вы хотите переписать модель комментариев поведения, вам нужно импортировать

# apps.admin.py

from django.contrib.comments.models import Comment
0 голосов
/ 16 ноября 2010

Спасибо, Томаш, проблема заключалась в том, что в list_display 'content_type' ничего не отображалось.Удаление его из MyCommentsAdmin решило проблему:

app / admin.py:

class MyCommentsAdmin(admin.ModelAdmin):
    fieldsets = (
        (_('Content'),
           {'fields': ('user', 'user_name', 'user_email', 'user_url', 'comment')}
        ),
        (_('Metadata'),
           {'fields': ('submit_date', 'ip_address', 'is_public', 'is_removed')}
        ),
     )

    list_display = ('name', 'ip_address', 'submit_date', 'is_public', 'is_removed')
    list_filter = ('submit_date', 'site', 'is_public', 'is_removed')
    date_hierarchy = 'submit_date'
    ordering = ('-submit_date',)
    raw_id_fields = ('user',)
    search_fields = ('comment', 'user__username', 'user_name', 'user_email', 'user_url', 'ip_address')

admin.site.unregister(Comment)
admin.site.register(Comment, MyCommentsAdmin)

urls.py:

from django.contrib import admin
admin.autodiscover()

import app.admin
...