Django中模型字段的blank和null的区别

一.null

Field.null
如果设置为 True, 当该字段为空时,Django 会将数据库中该字段设置为 NULL,默认为 False。

避免在基于字符串的字段(例如 CharField 和 TextField)上使用 null。如果字符串字段的 null=True,那意味着对于“无数据”有两个可能的值:NULL 和空字符串。在大多数情况下,对于“无数据”声明两个值是赘余的,Django 的惯例是使用空字符串而不是 NULL。 一个例外是当 CharField 同时具有 unique=True 和 blank=True 时。 在这种情况下,需要设置 null=True,以便在使用空白值保存多个对象时避免唯一的约束违规。

二.blank

Field.blank
如果设置为True,该预设允许为空。替代为False。

请注意,这与null有所不同。null与数据库完全相关,而blank与验证相关。如果字段包含blank=True,则表单验证将允许输入一个空值。如果字段包含blank=False,则将需要该字段。

猜你喜欢

转载自blog.csdn.net/qq_39253370/article/details/109717356
今日推荐