不得不说,django数据级联这个对新手朋友来讲还是有点抽象,不好理解。
我们下面来个小例子,促进理解一下吧。
我们以年级、学生数据管理为例子。
1、在models.py中创建两张表
第一张表Grade用来存储年级情况
第二张表Students用来存储学生情况
如下
其中学生这张表,用grade这个字段与年级建立级联关系。
2、建立好表,并且填充好数据
接下来,我们迁移并且建立这些数据表,并往里面填充好数据。数据怎么填,可以使用workbench或者navicat这种可视化数据管理工具手动添加。
如下:
这是Grade这张表
下面是students这张表
建立级联以后,相当于第二张表中的grade_id 对应的就是第一张表中的id
jackma的grade_id=1,对应第一张表中的id=1,是七年级
3、在urls.py中设定好路由
一共两条路由,一个用来查某学生的年级,一个用来查某个年级里面的所有学生
4、在views.py中写视图函数
如下
pk=1,即表中键值为1的学生,从表中可以看出pk=1这位学生是“jackma”,看他是哪个年级的。
在Grade这张表中,pk=2表示的是八年级。
5、访问路由查看结果
访问【127.0.0.1:8000/get_grade】可以看到如下结果:
访问【127.0.0.1:8000/all_students_of】可以看到如下结果:
这是django当中一个比较简单的一对多数据级联的例子。
希望对你有帮助哈。
标签: