1. 程式人生 > 實用技巧 >django-7-模型類之間關係以及兩種關聯查詢

django-7-模型類之間關係以及兩種關聯查詢

模型類之間的關係

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='天龍八部')