Pregunta

No quiero que otra persona que visite mi sitio para comentar que sólo los espacios, líneas de rotura en el formulario. ¿Cómo utilizo el comando "si" en este caso? Gracias por las respuestas!

¿Fue útil?

Solución

Así que supongo que lo que quiere es comprobar si el comentario sometido sólo tiene espacios o saltos de línea (es decir, espacios en blanco o caracteres) es un comentario vacío y luego ignorar ese comentario (o mostrar un mensaje al usuario). Esto se puede hacer uso de expresiones regulares:

import re

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

Otros consejos

No estoy seguro de que, si realmente quiere manejar esto dentro de la propia vista o plantilla. Desde comentario marco un tiempo de Django permiten definir moderadores donde se puede poner en práctica toda la lógica que se quiere detectar los comentarios no deseados.

Para un buen ejemplo de cómo utilizar eso, echar un vistazo a Django comentarios de BartTC aplicación -spamfighter.

Sin duda, esto requiere el uso de comentario marco de Django en el primer lugar. Si no lo hace, usted podría en su método de validación de la forma de despojar todos los saltos de línea y espacios en blanco, en general, y comprobar, si su mensaje comentario es aún más largo que 0 caracteres. Las cadenas en Python tienen una buena función pequeña llamada strip para esas cosas: -)

Creo que sólo tiene que utilizar un formulario y agregar un método limpio. Yo sólo lo he probado en una consola interactiva:

>>> 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']}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top