Django Day5

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

欢迎加入我的公众号【全能技术进阶之路】,期待与你的每一天学习!
全能技术进阶之路

发布了8 篇原创文章 · 获赞 1 · 访问量 79

猜你喜欢

转载自blog.csdn.net/StudyFruit/article/details/104452167