Django: Como tornar o Django Comentários não públicos por padrão
-
24-09-2019 - |
Pergunta
Usando a estrutura de comentários do Django http://docs.djangoproject.com/en/dev/ref/contrib/comments/
Não tenho certeza de que existe a opção, para tornar todos os comentários não privados antes de passarem a moderação ... parece que todos os meus comentários são adicionados ao site, logo após serem publicados. realmente preciso mudar isso
Solução
Uma maneira de fazer isso seria escrever seu próprio formulário de comentários que herda do django.contrib.comments.forms.CommentForm
e reescrever It get_comment_create_data
função. Aviso: este código não foi testado.
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
Você então conectaria esse formulário aos sistemas de comentários, conforme descrito nesta seçãohttp://docs.djangoproject.com/en/dev/ref/contrib/comments/custom/
Outras dicas
Configure um moderador de comentários e defina 'Auto_moderate_field' em um campo DateField ou DateTimefield no modelo e 'moderado_after' como 0.
class ArticleModerator(CommentModerator):
email_notification = True
enable_field = 'enable_comments'
auto_moderate_field = 'pub_date'
moderate_after = 0
moderator.register(Article, ArticleModerator)
Mais informações nos documentos:https://docs.djangoproject.com/en/dev/ref/contrib/comments/modeation/#built-in-modeation-options