Django框架(十一:orm操作之表的一对多)
先创建两个表,一个为教室表,一个为学生表,两者为一对多的关系,也就是一个老师能有多个学生,但是一个学生只能有一个老师,所以学生表可以用教室的id作为外键
教师表:
学生表:
向表中添加多条数据用于测试,可在数据库的可视化工具中手动添加,也可以用代码添加(Django框架的博客第十已经介绍),也可以使用admin配置(接下来会对这种方法进行详细介绍)
如下图,我在里面插入了三条数据,其中两条是同一个外键,也就是对应教师表的一条数据
教师表数据展示
接下来就是要通过主表来查询从表的数据,和通过从表查询主表的数据
1.如何根据主表的一条数据查询所有从表的数据?
代码:
t = Teacher.object.get(id=1)
# 表名_set
s = t.student_set.all()
查询结果展示:
2.如何根据从表的一条数据查询对应的一条主表的数据?
代码:
s = Student.objects.get(id=3)
t = s.teacher_id.s_name
结果展示