首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django:如何阻止条目只包含空格或隔断线

Django:如何阻止条目只包含空格或隔断线
EN

Stack Overflow用户
提问于 2009-11-03 14:39:02
回答 3查看 147关注 0票数 0

我不希望有人访问我的网站评论说,只有空格,在表单上的隔断线。在这种情况下,如何使用命令"if“?感谢您的回答!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-03 15:28:51

所以我猜你想要的是检查提交的评论是否只有空格或换行符(即空白字符),或者是一个空评论,然后忽略该评论(或者向用户显示一条消息)。您可以使用正则表达式来完成此操作:

代码语言:javascript
运行
复制
import re

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

Stack Overflow用户

发布于 2009-11-03 14:57:47

我不确定,您是否真的希望在视图本身或模板中处理此问题。一段时间以来,Django的注释框架允许您定义moderators,您可以在其中实现您想要检测不需要的注释的所有逻辑。

关于如何使用它的一个很好的例子,请看一下BartTC's django-comments-spamfighter app

当然,这需要首先使用Django的评论框架。如果没有,可以在表单的validate方法中去掉所有换行符和空格,并检查注释消息是否仍然长于0个字符。Python中的字符串有一个很好的叫做strip的小函数来处理这些事情:-)

票数 1
EN

Stack Overflow用户

发布于 2009-11-04 02:37:43

我想你只需要使用一个表单并添加一个干净的方法。我刚刚在一个交互式控制台中尝试了一下:

代码语言:javascript
运行
复制
>>> 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']}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1665612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档