如何在django.contrib.comments中自动接受来自经过身份验证的用户的注释

时间:2010-03-31 13:36:08

标签: django django-comments

有没有办法让Django自动将评论的is_public字段设置为True。

我只允许注册用户发表评论,并希望跳过对发布的评论的人工审核。

4 个答案:

答案 0 :(得分:1)

内置注释表单应该已经将每个注释设置为is_public = True。请参阅http://code.djangoproject.com/browser/django/trunk/django/contrib/comments/forms.py

中的CommentDetailsForm.get_comment_create_data

如果要为登录用户和未登录用户更改此设置,请查看内置评论审核文档: http://docs.djangoproject.com/en/1.1/ref/contrib/comments/moderation/#ref-contrib-comments-moderation

您可以编写自己的主持人,检查注释以查看是否设置了comment.user以及是否不适中(is_public = True),否则设置为is_public = False。

答案 1 :(得分:0)

覆盖comments-form save-method,并将is_public设置为True

答案 2 :(得分:0)

好的,如果有人正在为此寻找答案,我就是这样解决的:

# in models.py:
import datetime
def moderate_comment(sender, instance, **kwargs):
    if not instance.id:
        instance.is_public = True
from django.contrib.comments.models import Comment
from django.db.models import signals

signals.pre_save.connect(moderate_comment, sender=Comment)

答案 3 :(得分:0)

覆盖CommentModerator的moderate对我有用:

from django.contrib.comments.moderation import CommentModerator

class EntryModerator(CommentModerator):
    # [...]

    def moderate(self, comment, content_object, request):
        # If the user who commented is a staff member, don't moderate
        if comment.user and comment.user.is_staff:
            return False
        else:
            return True