名词的约定
一对多关系中,一方对应的类叫做一类,多方对应的类叫做多类
多类中定义的属性,叫做关联属性
本节例子
图书类 BookInfo
英雄类 HeroInfo
利用模型类联表查询需要一方的结果,但是要根据多方的条件来查
需要多方的结果,但是需要通过一方的条件来查
查询演练
》理解双下划线的关系
- 类名__字段
英雄类名__字段名
相当于在说:
英雄表的字段
例如:
heroinfo__hcomment
指英雄表中hcomment字段
- 字段__条件 = 值
相当于在说
字段怎么样怎么样 这个值
例如:
hcomment__contains=“八”
指 hcomment字段包含八
当前的查询语句是在说
要查找一些图书
条件是这些书所对应的
英雄表中hcomment字段里包含八
图书类.objects.filter(英雄类__英雄类属性__查询条件=值)
图书是一方,图书类中没有关联字段。所以过滤的条件中需要手动的把它关联的多方类名写上去
》查找一方行对象,通过多方的条件来查
查找一个图书
要求是
它关联的英雄中,id值大于3的
图书是一方,图书类中没有关联字段。所以过滤的条件中需要手动的把它关联的多方类名写上去
》查找多方行对象,通过一方的条件来查
下面两种情况,效果是一样的
模型类查询的分析
查的是英雄,英雄是多方
多方有关联字段
可以通过关联字段直接找到对应的对象
因此
》