【发布时间】:2010-12-12 13:03:49
【问题描述】:
我不希望有人访问我的网站来评论表单上只有空格和分隔线。在这种情况下如何使用命令“if”?感谢您的回答!
【问题讨论】:
标签: django django-views
我不希望有人访问我的网站来评论表单上只有空格和分隔线。在这种情况下如何使用命令“if”?感谢您的回答!
【问题讨论】:
标签: django django-views
我不确定,如果您真的想在视图本身或模板中处理这个问题。一段时间以来,Django 的注释框架允许您定义moderators,您可以在其中实现您想要检测不需要的 cmets 的所有逻辑。
有关如何使用它的好例子,请查看BartTC's django-comments-spamfighter app。
当然,这首先需要使用 Django 的评论框架。如果你不这样做,你可以在表单的验证方法中去掉所有的换行符和空格,并检查你的评论消息是否仍然长于 0 个字符。 Python 中的字符串有一个很好的小函数,叫做 strip 来处理这些事情:-)
【讨论】:
所以我猜你想要检查提交的评论是否只有空格或换行符(即空白字符)或者是空评论,然后忽略该评论(或向用户显示消息)。 您可以使用正则表达式来做到这一点:
import re
if re.search('^\s*$', comment_text)
// empty comment, do something
【讨论】:
我猜你只需要使用一个表单并添加一个干净的方法。我刚刚在交互式控制台中尝试过:
>>> 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']}
【讨论】: