欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Django ----- 模型关系类

程序员文章站 2022-04-25 15:47:40
...

Django ----- 模型关系类

模型关系类

1、一对多关系
例 :图书类与人物类
models.ForeignKey() 定义在多的类中

2、多对多关系
列:新闻类 - 新闻类型类 体育新闻 国际新闻
models.ManyToManyField() 定义在哪个类中都可以

3、一对一关系
例:员工基本信息类 - 员工详细信息类,员工工号
models.OneToOneField 定义在哪个类中都可以

关联查询

在一对多的关系中,一对应的类我们把它叫做一类,多对应的那个类我们把它叫做多类,我们把多类定义的建立关联的类属性叫做关联属性。
例:查询 id 为 1 的图书关联的英雄信息。
通过对象来查询:
b = BookInfo.objects.get(id = 1)
b.heroinfo_set.all()

通过模型类来查询:
HeroInfo.objects.filter(hbook__id = 1)

例:查询 id 为1 的英雄关联的图书信息
通过对象来查询:
h = HeroInfo.objects.get(id = 1)
h.hbook

通过模型类来查询:
BookInfo.objects.filter(heroinfo__id = 1 )

Ps:
1、通过模型类实现关联查询的时候,要查哪个表中的数据,就需要通过哪个类来查。
2、写关联查询条件时候,如果类中没有关系属性,条件需要写对应类的名,如果有关系属性的,直接写关系属性。

Django ----- 模型关系类

自关联

表内自关联是指表内数据相关联的对象和表是相同字段,这样我们就直接用表内关联将外键关联设置成自身表的字段。
同样表内关联也分一对多字段和多对多字段。查询的时候跟上面外关联的一样。
比如: 一个数据表中有 广州市 广东省 越秀区、海珠区、荔湾区、天河区、白云区等区,要查广州市所在的上级省,则是自关联中的多类查一类 类对象.关系属性名 ,如果要查广州市的下级地区的则是一类查多类 类对象.模型类名__set.all()

相关标签: WEB 框架