🗒️Django model中null和blank区别

type
status
slug
summary
tags
category
icon
password
Date
在Django的模型定义中,nullblank是两个经常用到的参数

null

  • 数据库层面: null=True表示该字段在数据库中允许存储NULL值。
  • 数据类型: 主要用于数值型、日期型和时间型字段。
  • 默认值: 如果不设置,默认为null=False

blank

  • 表单验证层面: blank=True表示在Django的表单验证(如Admin界面或是使用ModelForm)时,该字段是可以为空的。
  • 数据类型: 可用于任何类型的字段。
  • 默认值: 如果不设置,默认为blank=False

示例

  • email: 在数据库中可以是NULL(因为null=True),并且在Django的表单验证中也可以为空(因为blank=True)。
  • birthdate: 同样,在数据库中可以是NULL,并且在表单验证中也可以为空。

注意事项

  • 对于CharFieldTextField,建议使用blank=True而不是null=True,因为Django会将空字符串('')用于表示空值。
  • 对于ForeignKey字段,如果想表示“没有关联”,则应该使用null=True
 
 
Loading...

© NotionNext 2021-2025