Domanda

Non voglio che qualcuno visita il mio sito a commentare che solo gli spazi, linee di discontinuità sul modulo. Come si utilizza il comando "se" in questo caso? Grazie per le risposte!

È stato utile?

Soluzione

Quindi credo che ciò che si vuole è quello di verificare se il commento presentata ha solo spazi o interruzioni di riga (vale a dire spazi bianchi o caratteri) è un commento vuoto e poi ignorare quel commento (o di mostrare un messaggio all'utente). È possibile farlo utilizzando le espressioni regolari:

import re

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

Altri suggerimenti

Non sono sicuro, se si vuole veramente a gestire questo all'interno della vista in sé o il modello. Dal commento quadro po 'di tempo di Django permette di definire moderatori in cui è possibile implementare tutta la logica che si desidera rilevare commenti indesiderati.

Per un buon esempio su come utilizzare tale, dare un'occhiata a django-commenti di BartTC -spamfighter App .

Sicuramente questo richiede l'uso di commentare quadro di Django, in primo luogo. Se non lo fai, si potrebbe nel metodo validate della forma spogliare tutti i ritorni a capo e spazi bianchi in generale e verificare, se il vostro commento messaggio è ancora più lungo di 0 caratteri. Le stringhe in Python hanno un bel po 'di funzione chiamata strip per quelle cose: -)

Credo che hai solo bisogno di usare una forma e aggiungere un metodo pulito. Ho appena provato in una console interattiva:

>>> 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']}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top