Question

Je ne veux pas que quelqu'un visiter mon site pour commenter que les espaces que, breaklines sur la forme. Comment puis-je utiliser la commande « si » dans ce cas? Merci pour les réponses!

Était-ce utile?

La solution

Alors je suppose que ce que vous voulez est de vérifier si le commentaire soumis ne comporte que des espaces ou des sauts de ligne (c.-à-caractères blancs) ou est un commentaire vide puis ignorer ce commentaire (ou afficher un message à l'utilisateur). Vous pouvez le faire en utilisant des expressions régulières:

import re

if re.search('^\s*$', comment_text)
   // empty comment, do something

Autres conseils

Je ne sais pas, si vous voulez vraiment gérer cela dans la vue elle-même ou un modèle. Depuis quelque temps le cadre de commentaires de Django vous permettent de définir django-commentaires de BartTC app -spamfighter .

Certes, cela nécessite d'utiliser le cadre de commentaires de Django en premier lieu. Si vous ne le faites pas, vous pouvez dans votre méthode validate de la forme dépouiller de toutes les nouvelles lignes et espaces blancs en général et vérifier si votre message de commentaire est encore plus de 0 caractères. Les chaînes en Python ont une petite fonction bien appelé strip pour les choses: -)

Je suppose que vous avez juste besoin d'utiliser un formulaire et ajouter une méthode propre. Je l'ai juste essayé dans une console interactive:

>>> from django import forms
>>> class CommentForm(forms.Form):
        comment = forms.CharField()
        def clean_comment(self):
           comment = self.cleaned_data['comment']
           comment = comment.strip()
           if len(comment) == 0:
               raise forms.ValidationError('Comment can not be blank')
           else:
            return comment
>>> form = CommentForm(data={'comment': '     '})
>>> form.is_valid()
False
>>> form.errors
{'comment': [u'Comment can not be blank']}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top