null=True
blank=True
default = 0
有什么不同?您什么时候使用什么?
直接来自Django模型字段参考:
Field.null
如果为
True
,则Django将NULL
在数据库中存储空值。默认值为False
。请注意,空字符串值将始终存储为空字符串,而不是
NULL
。仅null=True
用于非字符串字段,例如整数,布尔值和日期。对于这两种类型的字段,blank=True
如果您希望允许使用表单中的空值,则还需要进行设置,因为该null
参数仅影响数据库的存储(请参阅参考资料blank
)。除非有充分的理由,否则请避免
null
在基于字符串的字段(例如CharField
和)上使用TextField
。如果基于字符串的字段具有null=True
,则意味着它具有两个“无数据”的可能值:NULL和空字符串。在大多数情况下,为“无数据”使用两个可能的值是多余的;Django约定是使用空字符串,而不是NULL
。
Field.blank
如果为
True
,则该字段允许为空白。默认值为False
。请注意,这与有所不同
null
。null
与数据库完全相关,而blank
与验证相关。如果字段包含blank=True
,则在Django管理网站上的验证将允许输入一个空值。如果字段包含blank=False
,则将需要该字段。
Field.default
字段的默认值。这可以是值或可调用对象。如果可以调用,则每次创建新对象时都会调用它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句