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