Django模型基础第四节:多表查询

关系表的数据操作:

查看数据库中的表结构.
Django模型基础第四节:多表查询

一对多表关系数据的添加:

Django模型基础第四节:多表查询
1.第一种方式就是跟之前的一样,用传参的方法添加,需要注意的是外键的值必须是关联表中已经存在的值.
2.第二种方式是用的属性赋值的方式,因为我们在模型类有定义了一个department的属性,而这个属性的对象的类型必须是department表的类实例对象

表关联对象的访问:

外键关联 一对一 学院与学生
Django模型基础第四节:多表查询
如果只用department 而不用department_id 必须创建实例对象
Django模型基础第四节:多表查询
Django模型基础第四节:多表查询
Django模型基础第四节:多表查询
查询某个学生属于哪个学院
Django模型基础第四节:多表查询
Django模型基础第四节:多表查询
学院查询学生
Django模型基础第四节:多表查询
Django模型基础第四节:多表查询
Django模型基础第四节:多表查询
学生表中存在外键属性

子表查询主表为正向查询

主表查询子表为反向查询

当学院表查询学生的时候 反向查询 实例.类名_set

Django模型基础第四节:多表查询
举例:北大招聘学生哈哈哈 (更改对应的外键值 add方法)

一定是添加实例对象 所存在的数据才能通过add方法进行添加

Django模型基础第四节:多表查询
Django模型基础第四节:多表查询
Django模型基础第四节:多表查询
Django模型基础第四节:多表查询

北大招聘新生老炮儿

Django模型基础第四节:多表查询

查询

Django模型基础第四节:多表查询
从学生表中获取学生所在的学院

Django模型基础第四节:多表查询
Django模型基础第四节:多表查询
Django模型基础第四节:多表查询
Django模型基础第四节:多表查询
查询属于北大的学生

Django模型基础第四节:多表查询
查询所有学院名字为三毛学生的年龄
Django模型基础第四节:多表查询
查询年龄为18岁的学生
Django模型基础第四节:多表查询

多表查询 跨关联关系的查询:

Django 提供一种强大而又直观的方式来“处理”查询中的关联关系,它在后台自动帮你处理JOIN。 若要跨越关联关系,只需使用关联的模型字段的名称,并使用双下划线分隔,直至你想要的字段:
Django模型基础第四节:多表查询
Django模型基础第四节:多表查询
Django模型基础第四节:多表查询