Django建外鍵和多對多數(shù)據(jù)表

當你在django中配置完數(shù)據(jù)庫時衩婚,肯定要在models.py文件中創(chuàng)建數(shù)據(jù)庫表的結(jié)構(gòu)。當然厉斟,建單表肯定是好建的珍语,關(guān)鍵是數(shù)據(jù)為一對多或多對多的時候,建立的表就麻煩些集漾。

外鍵的調(diào)用

比如我要建個book表和一個Publisher表切黔,我們知道,一本書只能由一個出版社出版具篇,而一個出版社可以出多本書纬霞,所以書和出版社之間存在一對多的關(guān)系。所以我可以這樣寫

from django.db import models

class Publisher(models.Model):
    name = models.CharField(max_length=30, verbose_name="名稱")
    address = models.CharField("地址", max_length=50)
    city = models.CharField('城市',max_length=60)

class Book(models.Model):
    title = models.CharField(max_length=100)
    # django 2.0后驱显,添加外鍵時要再加一個on_delete參數(shù)才可以诗芜,
   
    # on_delete有多少個選項呢:
    #CASCADE:這就是默認的選項,級聯(lián)刪除埃疫,你無需顯性指定它伏恐。
    #PROTECT: 保護模式,如果采用該選項栓霜,刪除的時候翠桦,會拋出ProtectedError錯誤。
    #SET_NULL: 置空模式叙淌,刪除的時候秤掌,外鍵字段被設(shè)置為空,前提就是blank=True, null=True,定義該字段的時候鹰霍,允許為空闻鉴。
    #SET_DEFAULT: 置默認值,刪除的時候茂洒,外鍵字段設(shè)置為默認值孟岛,所以定義外鍵的時候注意加上一個默認值。
    publisher = models.ForeignKey(Publisher, on_delete=models.CASCADE)

因為一個出版社對應(yīng)多本書督勺,所以書是多的那一方渠羞,所以要把外鍵放到書的那個表中。

多對多建立數(shù)據(jù)表

當我再添加一個作者表的時候智哀,因為一本書可以有多個作者次询,而一個作者可以寫多本書,所以書和作者之間存在多對多的關(guān)系瓷叫。我可以這樣寫

from django.db import models

class Author(models.Model):
    name = models.CharField(max_length=30)
    def __str__(self):
        return self.name

class Book(models.Model):
    title = models.CharField(max_length=100)
     # 這個多對多關(guān)系寫到哪個表中都可以   
    authors = models.ManyToManyField(Author)

這樣屯吊,基本的一對多和多對多數(shù)據(jù)表就創(chuàng)建完成了送巡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市盒卸,隨后出現(xiàn)的幾起案子骗爆,更是在濱河造成了極大的恐慌,老刑警劉巖蔽介,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件摘投,死亡現(xiàn)場離奇詭異,居然都是意外死亡虹蓄,警方通過查閱死者的電腦和手機犀呼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來武花,“玉大人圆凰,你說我怎么就攤上這事√寤” “怎么了专钉?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長累铅。 經(jīng)常有香客問我跃须,道長,這世上最難降的妖魔是什么娃兽? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任菇民,我火速辦了婚禮,結(jié)果婚禮上投储,老公的妹妹穿的比我還像新娘第练。我一直安慰自己,他們只是感情好玛荞,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布娇掏。 她就那樣靜靜地躺著,像睡著了一般勋眯。 火紅的嫁衣襯著肌膚如雪婴梧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天客蹋,我揣著相機與錄音塞蹭,去河邊找鬼。 笑死讶坯,一個胖子當著我的面吹牛番电,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播辆琅,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼漱办,長吁一口氣:“原來是場噩夢啊……” “哼担汤!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起洼冻,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎隅很,沒想到半個月后撞牢,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡叔营,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年屋彪,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绒尊。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡畜挥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出婴谱,到底是詐尸還是另有隱情蟹但,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布谭羔,位于F島的核電站华糖,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瘟裸。R本人自食惡果不足惜客叉,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望话告。 院中可真熱鬧兼搏,春花似錦、人聲如沸沙郭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽棠绘。三九已至件相,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間氧苍,已是汗流浹背夜矗。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留让虐,地道東北人紊撕。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像赡突,于是被迫代替她去往敵國和親对扶。 傳聞我的和親對象是個殘疾皇子区赵,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容