Django的:如何阻止入境只包括空格或断裂线
-
13-09-2019 - |
题
我不希望有人访问我的网站评论说,只有空间,在窗体上特征线。如何使用命令在这种情况下,“如果”?感谢您的解答!
解决方案
所以,我想你想要的是检查提交的评论只有空格或换行符(即空白字符),或者是一个空的注释,然后忽略注释(或显示一条消息给用户)。 您可以使用正则表达式做到这一点:
import re
if re.search('^\s*$', comment_text)
// empty comment, do something
其他提示
我不知道,如果你真的想视图本身或模板内处理这个问题。由于一段时间Django的评论的框架让你定义的主持人在那里你可以实现所有的逻辑要检测不需要的批注。
有关如何使用一个很好的例子,看看 BartTC的Django的意见-spamfighter应用。
当然,这需要使用Django的评论框架摆在首位。如果不这样做,你可以在表单中的您validate方法剥去所有的换行和空格一般和检查,如果您的评论信息比0字符更长。在Python中有那些东西一个可爱的小函数调用strip
: - )
我猜你只需要使用一个表单并添加清洁方法。我只是尝试了一下在一个交互式控制台:
>>> 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']}
不隶属于 StackOverflow