python——Django——21.关联查询(一对多)

时间:2024-03-21 14:29:56

全部文档总结下载地址 https://download.csdn.net/download/xxf_is_girl_gad/

 

  1. 关联查询(一对多

21.1 查询和对象关联的数据

在一对多关系中,一对应的类我们把它叫做一类,多对应的那个类我们把它叫做多类,我们把多类中定义的建立关联的类属性叫做关联属性

例:查询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)

格式:

python——Django——21.关联查询(一对多)

 

由一类的对象查询多类的时候:

一类的对象.多类名小写_set.all() #查询所用数据

由多类的对象查询一类的时候:

多类的对象.关联属性  #查询多类的对象对应的一类的对象

由多类的对象查询一类对象的id时候:

多类的对象. 关联属性_id

21.2 通过模型类实现关联查询

python——Django——21.关联查询(一对多)

 

例:查询图书信息,要求图书关联的英雄的描述包含'八'。

BookInfo.objects.filter(heroinfo__hcomment__contains='八')

例:查询图书信息,要求图书中的英雄的id大于3.

BookInfo.objects.filter(heroinfo__id__gt=3)

例:查询书名为“天龙八部”的所有英雄。

HeroInfo.objects.filter(hbook__btitle='天龙八部')

通过多类的条件查询一类的数据:

一类名.objects.filter(多类名小写__多类属性名__条件名)

通过一类的条件查询多类的数据:

多类名.objects.filter(关联属性__一类属性名__条件名)