我正在使用 django.contrib.comments 来允许用户对博客发表评论。如何使评论显示在 Django Admin /admin/comments/comment/ 上并使其可单击以进行编辑?
[这里应该是图片,但由于这是我的第一个问题,我没有信用,所以不允许包含图片]
可以通过 /admin/comments/comment/ comment_id / 访问评论,并且可以毫无问题地进行编辑。
任何想法如何解决?
我正在使用 django.contrib.comments 来允许用户对博客发表评论。如何使评论显示在 Django Admin /admin/comments/comment/ 上并使其可单击以进行编辑?
[这里应该是图片,但由于这是我的第一个问题,我没有信用,所以不允许包含图片]
可以通过 /admin/comments/comment/ comment_id / 访问评论,并且可以毫无问题地进行编辑。
任何想法如何解决?
查看 django.contrib.comments.admin,它应该已经在您的管理面板中可见,前提是您将“django.contrib.comments”添加到 INSTALLED_APPS。
编辑:
第二次查看来自 Comments 应用程序的 admin.py 发现CommentsAdmin.list_display不包含评论本身。所以我要么从那个 CommentsAdmin 继承,覆盖 list_display,然后用 MyNewCommentsAdmin 注销并重新注册 Comment,或者我只是猴子补丁 CommentsAdmin。无论哪个有效。
谢谢 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
添加回答梅洛:
如果您使用标准评论的框架(例如:#in url.py
url(r'^comments/', include('django.contrib.comments.urls')),
您希望覆盖行为评论模型,您需要导入
#apps.admin.py
from django.contrib.comments.models import Comment