2

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

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

4

4 回答 4

1

内置的评论表单应该已经将每个评论设置为 is_public=True。参阅CommentDetailsForm.get_comment_create_datahttp://code.djangoproject.com/browser/django/trunk/django/contrib/comments/forms.py

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

您可以编写自己的版主来检查评论以查看是否设置了comment.user,如果未设置(is_public = True),则设置is_public = False。

于 2010-03-31T13:59:03.143 回答
0

覆盖评论表单保存方法,并将 is_public 设置为 True

于 2010-03-31T13:55:49.840 回答
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)
于 2010-08-09T18:21:04.530 回答
0

覆盖moderateCommentModerator 对我有用:

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
于 2010-10-18T20:18:10.120 回答