Frage

Ich will nicht, dass jemand meine Website besuchen, die nur Leerzeichen kommentieren, Bruchkanten auf dem Formular. Wie verwende ich den Befehl „if“ in diesem Fall? Vielen Dank für die Antworten!

War es hilfreich?

Lösung

Also ich denke, was Sie wollen, ist zu prüfen, ob der vorgelegte Kommentar nur Leerzeichen oder Zeilenumbrüche hat (das heißt Leerzeichen) oder ein leerer Kommentar und ignoriert dann diesen Kommentar (oder eine Nachricht an den Benutzer anzuzeigen). Sie können dies mit regulären Ausdrücken tun:

import re

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

Andere Tipps

Ich bin nicht sicher, ob Sie wirklich diese selbst oder eine Vorlage in der Ansicht wollen behandeln. Da einige Kommentar Rahmen der Zeit Django lassen definieren Sie BartTC der django-Kommentare -spamfighter App .

Sicherlich ist dies erfordert Djangos Kommentar Rahmen in erster Linie zu verwenden. Wenn Sie nicht tun, könnten Sie in Ihrem Validate-Methode des Formulars alle Zeilenumbrüche und Leerzeichen im Allgemeinen abstreifen und überprüfen, ob Ihr Kommentar Nachricht als 0 Zeichen noch länger ist. Strings in Python hat eine nette kleine Funktion namens strip für diese Dinge: -)

Ich denke, man muss nur ein Formular verwenden und eine saubere Methode hinzufügen. Ich habe es gerade ausprobiert in einer interaktiven Konsole:

>>> 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']}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top