欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

對(duì)django 2.x版本中models.ForeignKey()外鍵說明介紹

 更新時(shí)間:2020年03月30日 09:45:54   作者:亦非我所愿丶  
這篇文章主要介紹了對(duì)django 2.x版本中models.ForeignKey()外鍵說明介紹,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

下面是代碼

class GroupInfos(models.Model):
 uid = models.AutoField(primary_key=True)
 caption = models.CharField(max_length=32, unique=True)
 ctime = models.DateTimeField(auto_now_add=True, null=True)
 uptime = models.DateTimeField(auto_now=True, null=True)

class UserInfos(models.Model):
 username = models.CharField(max_length=32, blank=True, verbose_name='用戶名')
 password = models.CharField(max_length=64, help_text='text')
 email = models.EmailField(max_length=60)
 user_group = models.ForeignKey('GroupInfos', to_field='uid', on_delete='CASCADE')

說明

第一個(gè)class創(chuàng)建一個(gè)名稱為app_groupinfos的表

第二個(gè)class創(chuàng)建一個(gè)名稱為app_userinfos的表

1、ForeignKey 表示設(shè)置外健

2、to_field表示外健關(guān)聯(lián)的主鍵

3、on_delete有多個(gè)選項(xiàng)

在django2.0后,定義外鍵和一對(duì)一關(guān)系的時(shí)候需要加on_delete選項(xiàng),此參數(shù)為了避免兩個(gè)表里的數(shù)據(jù)不一致問題,不然會(huì)報(bào)錯(cuò):

TypeError: init() missing 1 required positional argument: ‘on_delete'

舉例說明:

user=models.OneToOneField(User)
owner=models.ForeignKey(UserProfile)

需要改成:

user=models.OneToOneField(User,on_delete=models.CASCADE) --在老版本這個(gè)參數(shù)(models.CASCADE)是默認(rèn)值
owner=models.ForeignKey(UserProfile,on_delete=models.CASCADE) --在老版本這個(gè)參數(shù)(models.CASCADE)是默認(rèn)值

參數(shù)說明:

on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五個(gè)可選擇的值

CASCADE:此值設(shè)置,是級(jí)聯(lián)刪除。

PROTECT:此值設(shè)置,是會(huì)報(bào)完整性錯(cuò)誤。

SET_NULL:此值設(shè)置,會(huì)把外鍵設(shè)置為null,前提是允許為null。

SET_DEFAULT:此值設(shè)置,會(huì)把設(shè)置為外鍵的默認(rèn)值。

SET():此值設(shè)置,會(huì)調(diào)用外面的值,可以是一個(gè)函數(shù)。

一般情況下使用CASCADE就可以了。

那么,這個(gè)時(shí)候一個(gè)group就會(huì)對(duì)應(yīng)多個(gè)user,屬于一對(duì)多的類型。

當(dāng)我們查詢一個(gè)組有那些用戶的時(shí)候,就會(huì)用到當(dāng)前的外健,

創(chuàng)建記錄

并且,在class中定義了foreignKey之后,group還不存在的同時(shí),user表也因?yàn)榧s束的原因,不能被進(jìn)行創(chuàng)建

刪除記錄

并且,在class中定義了foreignKey之后,user中記錄存在的同時(shí),group表中的記錄也因?yàn)榧s束的原因,不能被進(jìn)行刪除

補(bǔ)充知識(shí):owner = models.ForeignKey(User)出現(xiàn)TypeError

owner = models.ForeignKey(User)出現(xiàn)錯(cuò)誤 TypeError: init() missing 1 required positional argument: ‘on_delete'
owner = models.ForeignKey(User)

出現(xiàn)下列錯(cuò)誤:

TypeError: __init__() missing 1 required positional argument: 'on_delete'

解決辦法:

owner = models.ForeignKey(User, on_delete=models.CASCADE)

以上這篇對(duì)django 2.x版本中models.ForeignKey()外鍵說明介紹就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python3 能振興 Python的原因分析

    Python3 能振興 Python的原因分析

    我從Stephen A. Goss那讀到關(guān)于了《Python 3正在毀滅Python》。這篇文章有不少精彩的論點(diǎn),但我卻并不認(rèn)為Python 3是在毀滅Python,也不認(rèn)為整個(gè)局面對(duì)Python一點(diǎn)也不利
    2014-11-11
  • Pycharm操作Git及GitHub的步驟詳解

    Pycharm操作Git及GitHub的步驟詳解

    這篇文章主要介紹了Pycharm操作Git及GitHub的步驟詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 淺談numpy數(shù)組初始化的幾種方法

    淺談numpy數(shù)組初始化的幾種方法

    本文主要介紹了淺談numpy數(shù)組初始化的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Python操作列表常用方法實(shí)例小結(jié)【創(chuàng)建、遍歷、統(tǒng)計(jì)、切片等】

    Python操作列表常用方法實(shí)例小結(jié)【創(chuàng)建、遍歷、統(tǒng)計(jì)、切片等】

    這篇文章主要介紹了Python操作列表常用方法,結(jié)合實(shí)例形式總結(jié)分析了Python列表常見的創(chuàng)建、遍歷、統(tǒng)計(jì)、切片等操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2019-10-10
  • 淺析Python中將單詞首字母大寫的capitalize()方法

    淺析Python中將單詞首字母大寫的capitalize()方法

    這篇文章主要介紹了淺析Python中將單詞首字母大寫的capitalize()方法,是Python入門中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Pytorch閱讀文檔中的flatten函數(shù)

    Pytorch閱讀文檔中的flatten函數(shù)

    PyTorch提供了一個(gè)非常方便的函數(shù)flatten()來完成這個(gè)任務(wù),本文將介紹Pytorch閱讀文檔中的flatten函數(shù),并提供一些示例代碼,感興趣的朋友一起看看吧
    2023-11-11
  • python模擬登陸,用session維持回話的實(shí)例

    python模擬登陸,用session維持回話的實(shí)例

    今天小編就為大家分享一篇python模擬登陸,用session維持回話的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python中Django的路由配置詳解

    Python中Django的路由配置詳解

    這篇文章主要介紹了Python中Django的路由配置詳解,Python下有許多款不同的?Web?框架,Django是重量級(jí)選手中最有代表性的一位,許多成功的網(wǎng)站和APP都基于Django,需要的朋友可以參考下
    2023-07-07
  • tensorflow 獲取checkpoint中的變量列表實(shí)例

    tensorflow 獲取checkpoint中的變量列表實(shí)例

    今天小編就為大家分享一篇tensorflow 獲取checkpoint中的變量列表實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python opencv實(shí)現(xiàn)圖片旋轉(zhuǎn)矩形分割

    python opencv實(shí)現(xiàn)圖片旋轉(zhuǎn)矩形分割

    這篇文章主要為大家詳細(xì)介紹了python opencv實(shí)現(xiàn)圖片旋轉(zhuǎn)矩形分割,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07

最新評(píng)論