Django跨关联关系查询

时间:2021-06-24 17:34:47   收藏:0   阅读:0

正向查询:

多表查一表;

反向查询:

一表查多表

 

关联查询

多对多和一对多

正向查询:

one1 = 一类名.objects.get()

many_data = one1.多类名小写.all()

反向查询:

many1 = 多类名.objects.get()

one_data = many1.一类名小写_set.all()

一对一:以下多类名代指存放OneToOneField的类

正向查询:

one1 = 一类名.objects.get()

many_data = one1.多类名小写

反向查询:

many1 = 多类名.objects.get()

one_data = many1.一类名小写

 

注意: 1、查询哪个表中的数据,就通过哪个模型类来查询。  2、通过关联属性的条件查询时,如果关联属性定义在该模型类中就直接使用关联属性,否则使用关联的模型类名小写。

通过多类的查询一类的数据:
    一类名.objects.filter(多类名小写__多类属性名)   # 关联属性没有定义在该类中,所以用多类名小写
通过一类的查询多类的数据:
    多类名.objects.filter(关联属性__一类属性名)     # 关联属性定义在该类中,所以直接用关联属性名

根据关联属性的条件查询

通过多类的条件查询一类的数据:
    一类名.objects.filter(多类名小写__多类属性名__条件名)   # 关联属性没有定义在该类中,所以用多类名小写
通过一类的条件查询多类的数据:
    多类名.objects.filter(关联属性__一类属性名__条件名)   # 关联属性定义在该类中,所以直接用关联属性名

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!