django: как сделать комментарии django не публичными по умолчанию - PullRequest
3 голосов
/ 02 апреля 2010

Использование структуры комментариев django http://docs.djangoproject.com/en/dev/ref/contrib/comments/

Не уверен, что есть возможность сделать все комментарии не приватными, пока они не прошли модерацию ... Похоже, все мои комментарии добавляются на сайт сразу после публикации. действительно нужно изменить это

Ответы [ 2 ]

4 голосов
/ 02 апреля 2010

Один из способов сделать это - написать собственную форму комментариев, которая унаследована от django.contrib.comments.forms.CommentForm, и переписать ее функцию get_comment_create_data. ВНИМАНИЕ: Этот код не проверен.

from django.contrib.comments.forms import CommentForm

class MyCommentForm(CommentForm):
    def get_comment_create_data(self):
        data = super(MyCommentForm, self).get_comment_create_data()
        data['is_public'] = False
        return data

Затем вы подключите эту форму к системам комментариев, как описано в этом разделе. http://docs.djangoproject.com/en/dev/ref/contrib/comments/custom/

3 голосов
/ 29 октября 2011

Установите модератор комментария и задайте для auto_moderate_field значение DateField или DateTimeField для модели, а для Average_after - 0.

class ArticleModerator(CommentModerator):
    email_notification = True
    enable_field = 'enable_comments'
    auto_moderate_field = 'pub_date'
    moderate_after = 0

moderator.register(Article, ArticleModerator)

Больше информации в документации: https://docs.djangoproject.com/en/dev/ref/contrib/comments/moderation/#built-in-moderation-options

...