Django Day5
1.迁移思路
- 实现过程:生成迁移文件,执行迁移
- 迁移文件的生成
- 根据models文件生成迁移文件
- 根据models和已有迁移文件生成迁移文件
- 执行迁移文件
- 选择迁移记录中为被迁移过的文件
- 执行未迁移的文件
- 执行完毕,对迁移文件进行记录
2.模型的关系
- 一对一 | 多对一 | 多对多
- 一对一
- 将复杂表进行拆分
- models.onetooneField()
- 实现:外键加限制
- 级联数据,禁止滥用删除
- 级联数据获取:
-主取从,隐性属性
-从取主,显性属性
- 一对多
- ForeignKey
- 多对多
- 产生表时生成新的关系表
- 关系表中存储关联表的主键
- 从获取主
-属性是一个ManyRelatedManager类
-add
-remove
-clear - 主获取从
-隐形属性 class_set,同样是ManyRelatedmanager类
-处理级联数据函数同上
3.对级联数据的删除
- 默认特性:主表删除从表同样消失但从表消失主表不受影响
- on-delete=models.PROTECT,解决上述问题,防止误操作
- 主表存在受保护的关联数据,不能删除,必须先删除关联数据
- 主表不存在受保护关联数据,可以直接删除
- SET
- set_NULL
- set_DEFAULT
- set
欢迎加入我的公众号【全能技术进阶之路】,期待与你的每一天学习!