在documentation中,我无法找到答案。
如果我想将字段留空,我是否必须明确设置blank=True
?
答案 0 :(得分:3)
我知道你已经链接了这些文档,但是我明确地将这个文档用于遇到同一问题的任何人。您的标题问题的答案在文档中明确且明确地显示 - 默认情况下都是False
。如果您希望该字段为blank=True
,则是,您需要在每个字段上手动指定。
空白用于表格:
如果为True,则允许该字段为空。默认值为False。
请注意,这与null不同。 null纯粹 与数据库相关,而空白与验证相关。如果有一个字段 blank = True,表单验证将允许输入空值。如果一个 field为blank = False,将需要该字段。
如果您在该字段中保存没有任何内容的记录,则Null是存储在数据库中的内容。同样,此字段属性为null=False
如果为True,Django会将空值存储为数据库中的NULL。默认值为False。
避免在基于字符串的字段(如CharField和)上使用null TextField,因为空字符串值将始终存储为空 字符串,而不是NULL。如果基于字符串的字段具有null = True,那么 意味着它有两个可能的“无数据”值:NULL,空 串。在大多数情况下,拥有两个可能的值是多余的 “没有数据;”Django约定是使用空字符串,而不是NULL。
对于基于字符串和非字符串的字段,您还需要 如果您希望允许表单中的空值,则设置blank = True null参数仅影响数据库存储(请参阅空白)。
在很多情况下,您希望表单为空,但数据库条目为not Null
- 例如,you were specifying your own custom slug on model save。
当然,这也意味着您从主Field
类派生的任何自定义Field
都将具有相同的默认行为。如果这真的困扰你,你可以用你期望的行为来覆盖Field类,但是对于那些追随你的人来说,调试真的很麻烦。