Django框架(十一:orm操作之表的一对多)

先创建两个表,一个为教室表,一个为学生表,两者为一对多的关系,也就是一个老师能有多个学生,但是一个学生只能有一个老师,所以学生表可以用教室的id作为外键

教师表:
Django框架(十一:orm操作之表的一对多)

学生表:
Django框架(十一:orm操作之表的一对多)

向表中添加多条数据用于测试,可在数据库的可视化工具中手动添加,也可以用代码添加(Django框架的博客第十已经介绍),也可以使用admin配置(接下来会对这种方法进行详细介绍)
如下图,我在里面插入了三条数据,其中两条是同一个外键,也就是对应教师表的一条数据
Django框架(十一:orm操作之表的一对多)

教师表数据展示
Django框架(十一:orm操作之表的一对多)
接下来就是要通过主表来查询从表的数据,和通过从表查询主表的数据

1.如何根据主表的一条数据查询所有从表的数据?
代码:

t = Teacher.object.get(id=1)
# 表名_set
s = t.student_set.all()

查询结果展示:
Django框架(十一:orm操作之表的一对多)
2.如何根据从表的一条数据查询对应的一条主表的数据?
代码:

s = Student.objects.get(id=3)
t = s.teacher_id.s_name

结果展示
Django框架(十一:orm操作之表的一对多)