正向查询:
多表查一表;
反向查询:
一表查多表
关联查询
多对多和一对多
正向查询:
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(关联属性__一类属性名__条件名) # 关联属性定义在该类中,所以直接用关联属性名