手動建立第三張表

2022-08-27 07:27:07 字數 1913 閱讀 3835

1

多對多的關係,三種寫法

2 -手動建立第三張表(不建立關聯關係)

3class

book(models.model):4#

缺省會建立id

5 name = models.charfield(max_length=32)

6class

author(models.model):

7 name = models.charfield(max_length=32)

8class

book2author(models.model):

9 id = models.autofield(primary_key=true)

10 book=models.foreignkey(to='

book

',to_field='id'

)11 author=models.foreignkey(to='

author

',to_field='id'

)12 -不管是插入和查詢,刪除,都很麻煩(一般不用)

13 -自動建立第三張表

14 -查詢,插入,刪除,都很方便

15 -缺點:欄位是固定的,第三張表如果要新增字段,實現不了

16 -手動建立第三張表,建立關聯關係

17class

book(models.model):18#

缺省會建立id

19 name = models.charfield(max_length=32)20#

中介模型,手動指定第三張中間表是book2author

21 authors=models.manytomanyfield(to='

author

',through='

book2author

',through_fields=('

book

','author'))

22class

author(models.model):

23 name = models.charfield(max_length=32)

24def

__str__

(self):

25return

self.name

26class

book2author(models.model):

27 id = models.autofield(primary_key=true)

28 book=models.foreignkey(to='

book

',to_field='id'

)29 author=models.foreignkey(to='

author

',to_field='id'

)3031 -through:來指定我的第三張表是哪個

32 -through_fields:('

book

','author

'),第乙個值是:從中間表找到設定關聯欄位的表,通過哪個字段,第乙個位置就寫它

33 -終極總結:防止混了:關聯字段就是表名小寫,第乙個值:就是當前表的表名小寫

34 -查詢,新增,刪除,都很方便

35 -第三張表,可以新增別的字段

django自定義第三張表

當我們遇到多對多關係時,我們就立馬會想到建立第三張表來維護多對多的關係,比如,角色使用者許可權等 我們都知道對於django中manytomany欄位,django會自動為我們建立第三張表,預設情況下,django會如何給我們生成第三張表呢?請看 classuser models.model nam...

三張表聯合查詢

部門表 deptcode 部門編號,deptname 部門名稱 員工表 humancode 員工編號,humanname 員工姓名,deptcode 部門編號 考核表 resultcode 結果編號,humancode 人員編號,kpicode 考核結果 分 不合格,合格,優秀 1.統計各部門合格的...

對第三張卡片中的功能實現要點和注意的細節!

1 li ng repeat bid list in bid lists style height 42px ng tap bid sign up detail bid list.name 2 header create page id bid 競價報名 span 人 解析 1 create pag...