如何解决Django-如何设置空白= False,必填= False
|| 我有一个像这样的模型:class Message(models.Model):
msg = models.CharField(max_length = 150)
我有一个表格来插入字段。实际上,django允许使用空格,例如,如果我在字段中插入一个有效的空格。但是,现在我要解决此问题:该字段不是必需的,但是如果用户插入空格,则验证将失败。
我已经添加:
class Message(models.Model):
msg = models.CharField(max_length = 150,blank = False)
但它不起作用。
怎么了
解决方法
空格不视为空白。空白专门指没有输入(即空字符串
\'\'
)。如果值仅包含空格,则将需要使用引发字段异常的模型字段验证器。有关详细信息,请参见文档。
例:
def validate_not_spaces(value):
if isinstance(value,str) and value.strip() == \'\':
raise ValidationError(u\"You must provide more than just whitespace.\")
class Message(models.Model):
msg = models.CharField(max_length=150,blank=False,validators=[validate_not_spaces])
, 您需要创建自己的表单并在字段上执行自定义验证,以确保将重复的空格作为验证错误引发。像这样:
import re
class MessageForm(form.ModelForm)
def clean_msg(self):
msg = self.cleaned_data[\'msg\']
if re.match(\'/[\\s]+$\',msg):
raise ValidationError(\"Spaces not allowed\")
return msg
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。