Django 4.2 复习笔记(三)Model模型字段

作者:J.sky · 发表于:
2023-05-24T21:13:40.000000Z
· 更新于:
2023-08-13T22:54:57.601619Z
· Tag: Django

Django的ORM在Python中算是数一数二的,使用起来非常的简单和丝滑,文档也写的简单直观,相对于SQLAlchemy有过之而无不及。

模型字段

常用的字段选项:

选项 作用
null 如果是 True, Django 将在数据库中存储空值为 NULL。默认为 False。
blank 如果是 True ,该字段允许为空。默认为 False 。
db_index 如果是 True,将为该字段创建数据库索引。
default 该字段的默认值。可以是一个值或者是个可调用的对象,如果是个可调用对象,每次实例化模型时都会调用该对象。
help_text 额外的“帮助”文本,随表单控件一同显示。即便你的字段未用于表单,它对于生成文档也是很有用的。
primary_key 如果设置为 True ,将该字段设置为该模型的主键。
unique 如果设置为 True,这个字段必须在整个表中保持值唯一。
verbose_name 字段的一个人类可读名称,如果没有给定详细名称,Django 会使用字段的属性名自动创建,并将下划线转换为空格。
validators 要为该字段运行的验证器列表

常见字段类型:

名称 作用
AutoField 一个 IntegerField,根据可用的 ID 自动递增。你通常不需要直接使用它;如果你没有指定,主键字段会自动添加到你的模型中。
BooleanField 单元一个 true/false 字段。格
DateField 一个日期,在 Python 中用一个 datetime.date 实例表示。有一些额外的、可选的参数。
DateTimeField 一个日期和时间,在 Python 中用一个 datetime.datetime 实例表示。
EmailField 一个 CharField,使用 EmailValidator 来检查该值是否为有效的电子邮件地址。
FileField 一个文件上传字段
ImageField 继承 FileField 的所有属性和方法,但也验证上传的对象是有效的图像。
IntegerField 一个整数。从 -2147483648 到 2147483647 的值在 Django 支持的所有数据库中都是安全的。
CharField 一个字符串字段,适用于小到大的字符串。
TextField 一个大的文本字段。该字段的默认表单部件是一个 Textarea。
TimeField 一个时间,在 Python 中用 datetime.time 实例表示。接受与 DateField 相同的自动填充选项。
UUIDField 一个用于存储通用唯一标识符的字段。使用 Python 的 UUID 类。当在 PostgreSQL 上使用时,它存储在一个 uuid 的数据类型中,否则存储在一个 char(32) 中。

关系字段:

名称 作用
ForeignKey 一个多对一的关系。
ManyToManyField 一个多对多的关系
OneToOneField 一对一的关系。概念上,这类似于 ForeignKey 与 unique=True,但关系的“反向”将直接返回一个单一对象。

关系字段极大的简化了数据中表关系的设置。

参考:

模型字段参考