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'),
)
~~~
- 开始
- 安装 django
- 配置语言、时区
- 创建项目
- 执行项目
- Applications
- 应用
- 配置应用
- INSTALLED_APPS
- django apps 包
- AppConfig 子类
- 应用的复用
- 路由
- URLconf
- path
- 转换器
- re_path
- 捕获参数
- URL 反向解析
- include
- 额外参数
- URL 命名空间
- Settings
- Core Settings
- INSTALLED_APPS
- django API
- apps
- config.py -- AppConfig 类
- registry.py -- Apps 类
- db
- models.fields 包
- 字段类型
- 字段选项
- null、blank
- 模型
- 简介
- 字段
