NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
null ---- 是否允许 `null` ,**默认 False** 不允许。 #### 何时使用 null: 通常我们避免使用 null,因为这样不利于区分 *空值、0、null*。 ~~~ `name` VARCHAR(100) NOT NULL DEFAULT '', `score` TINYINT(3) NOT NULL DEFAULT 0, `content` TEXT NOT NULL, ... ~~~ 当 *列* 具有唯一索引时,我们才使用 null。因为 `unique` 列允许多个重复的 `NUll`。 ~~~ `name` VARCHAR(100) NULL, UNIQUE KEY `name` (`uqname`) , ... ~~~ 在 django 中,一般 `unique=True, blank=True` 时,我们为了避免唯一约束违规才使用 `null=True`。 当然 `blank` 并不重要,主要是看 `unique`。 ~~~ name = CharField( max_length=128, unique=True, blank=True, null=True ), ... ~~~ blank ----- 表单验证是否允许空值。**默认 False** 不允许。 `null` 纯粹与数据库相关,而 `blank` 与验证相关。 choices --------- 可迭代对象,形如: ~~~ YEAR_IN_SCHOOL_CHOICES = ( ('FR', 'Freshman'), ('SO', 'Sophomore'), ('JR', 'Junior'), ('SR', 'Senior'), ) ~~~