2

Django でコメントの is_public フィールドを自動的に True に設定する方法はありますか。

登録ユーザーにのみコメントを許可し、投稿されたコメントの手動レビューをスキップしたい.

4

4 に答える 4

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 に設定します。

于 2010-03-31T13:59:03.143 に答える
0

コメント フォームの保存方法を上書きし、is_public を True に設定します。

于 2010-03-31T13:55:49.840 に答える
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 に答える
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 に答える