django-7-模型類之間關係以及兩種關聯查詢
阿新 • • 發佈:2020-09-11
模型類之間的關係
class BookInfo(models.Model): # 一
class BookDate(models.Model): # 一
class HeroInfo(models.Model): # 多
class BookFactory(models.Model): # 多
1、一對多關係
models.ForeignKey('BookInfo')
# 定義在多類
2、多對多關係
models.ManyToManyField('BookFactory')
models.ManyToManyField('HeroInfo')
# 哪個類定義都可以
3、一對一關係
models.OneToOneField('BookDate') models.OneToOneField('BookInfo') # 哪個類定義都可以
關係關聯查詢
一對多關係
模型類實現關聯查詢
# heroinfo 為多的類名小寫,hcomment類的名字
BookInfo.objects.filter(heroinfo__hcomment__contains='八')
BookInfo.objects.filter(heroinfo__id__gt=3)
# hbook 為與一的關聯屬性的外來鍵
HeroInfo.objects.filter(hbook__btitle='天龍八部')
關聯查詢兩種方式
1、建立類物件,通過類物件關聯查詢
https://www.cnblogs.com/20190707wdd/p/13640366.html
2、通過模型類關聯查詢
# 物件關聯查詢
一:建立一類物件,一類物件.多類類名小寫__set.all()
b.herofinfo_set.all()
多:建立多類物件,多類物件.關聯屬性
h2=HeroInfo.objects.get(id=2)
'h2.hbook'
# 模型關聯查詢
BookInfo.objects.filter(heroinfo__hcomment__contains='八')
HeroInfo.objects.filter(hbook__btitle='天龍八部')