教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢/投訴熱線:400-618-4000

問答>python+大數(shù)據(jù)開發(fā)>Django中的ForeignKey是定義什么的?

Django中的ForeignKey是定義什么的?

來源傳智教育2022年04月18日 15時(shí)50分25秒

  ForeignKey用于定義一對(duì)多關(guān)系,它包含to和on_delete兩個(gè)必選參數(shù),其中to接收與之關(guān)聯(lián)的模型;on_delete用于設(shè)置關(guān)聯(lián)對(duì)象刪除后當(dāng)前對(duì)象作何處理,該選項(xiàng)有以下幾種取值:

  1.models.CASCADE:級(jí)聯(lián)刪除,刪除主表中記錄的同時(shí)也刪除關(guān)聯(lián)表中相關(guān)記錄。該取值為on_delete的默認(rèn)值。

  2.models.DO_NOTHING:刪除當(dāng)前表中記錄,但不刪除關(guān)聯(lián)表中相關(guān)記錄。

  3.models.PROTECT:刪除關(guān)聯(lián)數(shù)據(jù)時(shí)引發(fā)的ProtectError錯(cuò)誤。

  4.models.SET_NULL:在外鍵字段可為空的基礎(chǔ)上,若修改或刪除主表的主鍵,則將字表中參照的外鍵設(shè)置為null。

  5.models.SET_DEFAULT:在外鍵字段可為空的基礎(chǔ)上,若修改或刪除主表的主鍵,則將字表中參照的外鍵設(shè)置為默認(rèn)值。

  6.models.SET:刪除關(guān)聯(lián)數(shù)據(jù)時(shí)重新設(shè)置的ForeignKey值。

  此外,F(xiàn)oreignKey還有一個(gè)常用參數(shù)related_name,該參數(shù)用于設(shè)置關(guān)聯(lián)對(duì)象查詢時(shí)的名稱。

和我們?cè)诰€交談!