模型中的表关系:分为三大类:
- 一对一
- 一对多
- 多对多
注意:在建立完成表关系之后,记得要进行迁移,笔记中,我是在实现多对多关联后开始进行迁移
一对一:OneToOneField、on_delete
书写表结构不多说,这里着重说明在建立2个一对一的表格联系的时候,要注意的地方
关联指令一:
- 变量名=models.OneToOneField(‘子表’,on_delete=models.CASCADE)
关联指令二:
- 变量名=models.OneToOneField(‘子表’,on_delete=models.SET_NULL,null=True)
若使用第二种情况,则on_delete=models.SET_NULL ,null=True,必须同时使用
多对一:.ForeignKey,on_delete
变量名 = models.ForeignKey(‘一表’, on_delete=models.SET_NULL, null=True)
多对多:
- 方法一:不新建中间表,因为Django模型在迁移的时候自动建立中间表
- 方法二:手动新建中间表
方法一:
迁移:
1.setting设置app路径
2.python.manage.py makemigrations
3.python.manage.py migrate
回滚:在进行回滚前一定要迁移,因为回滚的目的就是返回上一个迁移而得到的表格
python manage.py migrate app名 模型序号
方法二:手动新建中间表:
- 1.手动新建中间表,那么多对多就转化为了多对一,用并且在中间表内要对2个关联的表进行多对一的关联语法
- 2.在需要关联的两2个表中的其一ManyToManyField命令后面加一个参数:
through=‘中间表’
3.最后进行迁移操作,则多对多的关系创建完成