关系型数据库的关系包括三种类型:
- ForeignKey:一对多,将字段定义在多的一端中。
- ManyToManyField:多对多,将字段定义在任意一端中。
- OneToOneField:一对一,将字段定义在任意一端中。
- 可以维护递归的关联关系,使用'self'指定,详见"自关联"。
关联查询
通过对象执行的关联查询
一对多的访问语法:一对应的模型对象.多对应的模型类的小写_set
b = BookInfo.objects.get(id=1)
b.heroinfo_set.all()
多对一的访问语法
多对应的模型对象.多对应的模型类对象的关系属性名
h = HeroInfo.objects.get(id=1)
h.hbook
由多模型类条件查询一模型类数据
关联模型类名小写_属性名_条件运算符=值
list = BookInfo.objects.filter(heroinfo__hcontent__contains='八')
由一模型条件查询多模型条件查询
一模型类关联属性名__一模型类属性名__条件运算符=值
list = HeroInfo.objects.filter(hbook__btitle='天龙八部')