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 № 1Le 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