/ / Cómo aceptar automáticamente comentarios de usuarios autenticados en django.contrib.comments - django, django-comments

Cómo aceptar automáticamente comentarios de usuarios autenticados en django.contrib.comments - django, django-comments

¿Hay alguna manera de hacer que Django establezca automáticamente el campo is_public del comentario como True?

Solo permito comentarios para usuarios registrados y me gustaría omitir la revisión manual de los comentarios publicados.

Respuestas

1 para la respuesta № 1

El formulario de comentarios integrado ya debería establecer que cada comentario tenga is_public = True. Ver CommentDetailsForm.get_comment_create_data en http://code.djangoproject.com/browser/django/trunk/django/contrib/comments/forms.py

Si desea cambiar esto para los usuarios que han iniciado sesión y los que no lo han hecho, eche un vistazo a los documentos integrados de moderación de comentarios: http://docs.djangoproject.com/en/1.1/ref/contrib/comments/moderation/#ref-contrib-comments-moderation

Puede escribir su propio moderador que verifica el comentario para ver si el comment.user está configurado y si no está moderado (is_public = True) de lo contrario, configure is_public = False.


0 para la respuesta № 2

sobrescriba el método de guardar el formulario de comentarios y establezca is_public en True


0 para la respuesta № 3

OK, si alguien está buscando la respuesta para esto, así es como lo resolví:

# 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)

0 para la respuesta № 4

Anulando el moderate de CommentModerator funciona para mí:

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