field参数。
一下这些是大部分字段类型都有的共有参数
db_column是=表中实际的column的名字
primary_key=true 可以指定pk
unique=true 该属性值唯一
null=True DB里允许null
blank= True 前端的form里提这个field交时可以为空
db_index = true, 对该属性加index
help_text = 'xxxx', 表单里显示help message
editable= false/trure, 默认是false; true的话这个添加进db后就无法被修改了
verbose_name=
一下这些是某些field type才有的
Charfield
max_length, 就是varchar的最大长度
Datefield
unique_for_date=true, 就是日期要唯一
auto_now_add=true, 自动记录插入时间
auto_now=true, 自动记录更新时间
FloatField
max_digits =3 ,
decimal_places =2 ,
一下是关系型field的参数
on_delete=, 这个表示当关联的表里的记录被删了,该采取什么措施。比如学生表里有tutor_id, 结果tutor表删了一些tutor数据。 那么这些tutor的学生的记录改一起删除呢,还是阻止删除有学生的tutor呢,还是设置tutor_id为null?
这个就是on_delete去定义。
所有字段都有的属性值
help_text: 在表单中显示帮助信息的参数
db_index: 为当前字段建立索引, 默认为False
null/blank: 字段是否可以为空, null约束数据库层面, blank约束前端表单提交时是否为空
unique: 唯一性约束, 默认为False
verbose_name: 设置字段别名(或备注)
primary_key: 设置当前字段是否为主键, 默认为False
db_column: 设置当前字段的名称,在数据库中表的名称
editable: 是否可以编辑, 默认为False
属于个别字段的参数
max_length[CharField]:最大长度
unique_for_date[DateField]: 字段日期必须唯一
unique_for_month[DateField]:月份唯一
auto_now[DateField]: 修改记录时是否自动更新当前日期
auto_now_add[DateField]: 添加记录时是否自动设置当前日志
max_digits[DecimalField]: 总共有多少位
decimal_places[DecimalField]: 小数点后数字的个数
关系型字段的参数
CASCADE: 模拟SQL语言中的ON DELETE CASCADE约束,将定义有外键的模型对象同时删除(该操作为当前Django版本的默认操作)
PROTECT: 阻止上面的删除操作, 弹出ProtectedError异常
SET_NULL: 将外键字段设为null, 只有当字段设置了null=True时, 方可使用该值
SET_DEFAULT: 将外键字段设为默认值, 只有当字段设置了default参数时,方可使用
DO_NOTHING: 什么也不做
SET(): 设置为一个传递给SET()的值或者一个回调函数的返回值, 注意大小写
related_name: 外键关联中的反向查询,由父表查询子表的信息
on_delete: 当一个被外键关联的对象被删除时,Django将模仿on_delete参数定义的SQL约束执行相应操作
db_index 表示为这个字段建立索引
关系型字段的on_delete参数
所有字段都有的属性值
editable: 是否可以编辑, 默认为False
help_text: 在表单中显示帮助信息的参数
db_index: 为当前字段建立索引, 默认为False
null/blank: 字段是否可以为空, null约束数据库层面, blank约束前端表单提交时
unique: 唯一性约束, 默认为False
verbose_name: 设置字段别名(或备注)
primary_key: 设置当前字段是否为主键, 默认为False
db_column: 设置当前字段的名称
属于个别字段的参数
max_length[CharField]
unique_for_date[DateField]: 字段日期必须唯一
unique_for_month[DateField]
auto_now[DateField]: 修改记录时是否自动更新当前日期
auto_now_add[DateField]: 添加记录时是否自动设置当前日志
max_digits[DecimalField]: 总共有多少位
decimal_places[DecimalField]: 小数点后数字的个数
关系型字段的参数
related_name: 外键关联中的反向查询,由父表查询子表的信息
on_delete: 当一个被外键关联的对象被删除时,Django将模仿on_delete参数定义的SQL约束执行相应操作
CASCADE: 模拟SQL语言中的ON DELETE CASCADE约束,将定义有外键的模型对象同时删除(该操作为当前Django版本的默认操作)
PROTECT: 阻止上面的删除操作, 弹出ProtectedError异常
SET_NULL: 将外键字段设为null, 只有当字段设置了null=True时, 方可使用该值
SET_DEFAULT: 将外键字段设为默认值, 只有当字段设置了default参数时,方可使用
DO_NOTHING: 什么也不做
SET(): 设置为一个传递给SET()的值或者一个回调函数的返回值, 注意大小写
====所有字段类型都有的参数====
db_column="age" 指定列名
primary_key=False 主键
verbose_name="最大长度11位" 别名或备注
unique=True
null=True, blank=True 可否为空(两个属性相关,前为数据库约束,后为前端表单限制)
db_index=True 设为索引
help_text="这个是longtext型" 说明文字
editable=False 设为只读字段不可编辑
====个别字段才有的参数====
# DateField
unique_for_date=True, auto_now=True
# DateTimeField
editable=False, unique_for_month=True, auto_now_add=True
# 浮点decimal
max_digits=4, decimal_places=2
====关系型字段的参数====
# OneToOneField
related_name="one"
# ForeignKey
on_delete=models.CASCADE 级联删除
on_delete=models.PROTECT 保护/阻止删除
on_delete=SET_NULL ,null=True, blank=True 删除置空
on_delete= SET_DEFAULT 设置默认值
on_delete=DO_NOTHING 无操作
on_delete=SET 给它传递一个SET值或回调函数的返回值
# ManyToManyField
删除级联、删除置空。