/ / Comment accepter automatiquement les commentaires d'utilisateurs authentifiés dans django.contrib.comments - django, django-comments

Comment accepter automatiquement les commentaires d'utilisateurs authentifiés dans django.contrib.comments - django, django-comments

Est-il possible de faire que Django définisse automatiquement le champ is_public du commentaire sur True

Je n'autorise que les commentaires des utilisateurs enregistrés et souhaite éviter l'examen manuel des commentaires postés.

Réponses:

1 pour la réponse № 1

Le formulaire de commentaires intégré doit déjà définir chaque commentaire avec is_public = True. Voir CommentDetailsForm.get_comment_create_data dans http://code.djangoproject.com/browser/django/trunk/django/contrib/comments/forms.py

Si vous souhaitez modifier ceci pour les utilisateurs connectés par rapport aux utilisateurs non connectés, consultez les documents de modération de commentaire intégrés: http://docs.djangoproject.com/en/1.1/ref/contrib/comments/moderation/#ref-contrib-comments-moderation

Vous pouvez écrire votre propre modérateur qui vérifie le commentaire pour voir si le commentaire.user est défini et s'il n'est pas modéré (is_public = True), sinon définissez is_public = False.


0 pour la réponse № 2

écraser la méthode de commentaire de formulaire de commentaires et définir is_public sur True


0 pour la réponse № 3

OK si quelqu'un cherche la réponse, voici comment je l'ai résolu:

# 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 pour la réponse № 4

Remplacer le moderate de CommentModerator fonctionne pour moi:

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