1

我正在使用 django.contrib.comments 来允许用户对博客发表评论。如何使评论显示在 Django Admin /admin/comments/comment/ 上并使其可单击以进行编辑?

[这里应该是图片,但由于这是我的第一个问题,我没有信用,所以不允许包含图片]

可以通过 /admin/comments/comment/ comment_id / 访问评论,并且可以毫无问题地进行编辑。

任何想法如何解决?

4

3 回答 3

1

查看 django.contrib.comments.admin,它应该已经在您的管理面板中可见,前提是您将“django.contrib.comments”添加到 INSTALLED_APPS。

编辑:

第二次查看来自 Comments 应用程序的 admin.py 发现CommentsAdmin.list_display不包含评论本身。所以我要么从那个 CommentsAdmin 继承,覆盖 list_display,然后用 MyNewCommentsAdmin 注销并重新注册 Comment,或者我只是猴子补丁 CommentsAdmin。无论哪个有效。

于 2010-11-08T22:21:50.177 回答
0

谢谢 Tomasz,问题是 list_display 中的“content_type”,导致什么都没有显示。从 MyCommentsAdmin 中删除它解决了这个问题:

应用程序/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)

网址.py:

from django.contrib import admin
admin.autodiscover()

import app.admin
于 2010-11-16T13:02:01.340 回答
0

添加回答梅洛:

如果您使用标准评论的框架(例如:#in url.py

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

您希望覆盖行为评论模型,您需要导入

#apps.admin.py

from django.contrib.comments.models import Comment
于 2013-03-09T11:52:12.327 回答