最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

下面是代碼

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')

說明

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

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

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

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

3、on_delete有多個選項

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

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) --在老版本這個參數(shù)(models.CASCADE)是默認(rèn)值
owner=models.ForeignKey(UserProfile,on_delete=models.CASCADE) --在老版本這個參數(shù)(models.CASCADE)是默認(rèn)值

參數(shù)說明:

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

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

PROTECT:此值設(shè)置,是會報完整性錯誤。

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

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

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

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

那么,這個時候一個group就會對應(yīng)多個user,屬于一對多的類型。

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

創(chuàng)建記錄

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

刪除記錄

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

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

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

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

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

解決辦法:

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

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

相關(guān)文章

  • Playwright如何自定義瀏覽器的下載和啟動路徑

    Playwright如何自定義瀏覽器的下載和啟動路徑

    playwright是一個非常有趣的自動化測試工具, 支持Node.js、Python、C# 和 Java語言,下面我們就來看看如何使用Playwright進(jìn)行自定義瀏覽器的下載和啟動路徑吧
    2025-04-04
  • Python numpy 模塊介紹

    Python numpy 模塊介紹

    這篇文章主要介紹了Python numpy 模塊,在motplotlib的學(xué)習(xí)過程中,我們使用最多的就是numpy模塊。下面我們將使用numpy進(jìn)行創(chuàng)建數(shù)組、切片、索引、廣播等功能實操,需要的朋友可以參考一下
    2022-01-01
  • Python開源自動化工具Playwright安裝及介紹使用

    Python開源自動化工具Playwright安裝及介紹使用

    playwright-python是一個強(qiáng)大的Python庫,僅用一個API即可自動執(zhí)行Chromium、Firefox、WebKit等主流瀏覽器自動化操作,本文就詳細(xì)的介紹一下如何使用,感興趣的可以了解一下
    2021-12-12
  • 修改Python?pip下載包的默認(rèn)路徑詳細(xì)步驟記錄

    修改Python?pip下載包的默認(rèn)路徑詳細(xì)步驟記錄

    這篇文章主要介紹了如何修改pip的默認(rèn)安裝路徑以釋放C盤空間,特別是針對機(jī)器學(xué)習(xí)相關(guān)的大型包,可以將pip的安裝位置更改為其他目錄,需要的朋友可以參考下
    2025-03-03
  • python3 googletrans超時報錯問題及翻譯工具優(yōu)化方案 附源碼

    python3 googletrans超時報錯問題及翻譯工具優(yōu)化方案 附源碼

    這篇文章主要介紹了python3 googletrans超時報錯問題及翻譯工具優(yōu)化方案 附源碼,本文給大家分享解決方法,通過實例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2020-12-12
  • Python 3.x對.CSV數(shù)據(jù)按任意行、列讀取的過程

    Python 3.x對.CSV數(shù)據(jù)按任意行、列讀取的過程

    這篇文章主要介紹了Python 3.x對.CSV數(shù)據(jù)按任意行、列讀取的過程,具有很好的參考價值,希望對大家有所幫助。
    2022-05-05
  • 基于python select.select模塊通信的實例講解

    基于python select.select模塊通信的實例講解

    下面小編就為大家?guī)硪黄趐ython select.select模塊通信的實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 帶你詳細(xì)了解Python GUI編程框架

    帶你詳細(xì)了解Python GUI編程框架

    今天小編就為大家分享一篇python 實現(xiàn)GUI(圖形用戶界面)編程詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-08-08
  • 利用Python進(jìn)行數(shù)據(jù)可視化常見的9種方法!超實用!

    利用Python進(jìn)行數(shù)據(jù)可視化常見的9種方法!超實用!

    這篇文章主要給大家介紹了關(guān)于利用Python進(jìn)行數(shù)據(jù)可視化常見的9種方法!文中介紹的方法真的超實用!對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • 在Python中的Django框架中進(jìn)行字符串翻譯

    在Python中的Django框架中進(jìn)行字符串翻譯

    這篇文章主要介紹了在Python中的Django框架中進(jìn)行字符串翻譯的一些初步方法,Django中還提供了待翻譯字符串檢測工具,需要的朋友可以參考下
    2015-07-07

最新評論

通榆县| 汉川市| 忻州市| 资中县| 舞阳县| 垦利县| 秦安县| 蓝田县| 长寿区| 云浮市| 民县| 中山市| 罗山县| 德兴市| 丽水市| 微博| 铜山县| 平远县| 辽中县| 紫阳县| 上犹县| 玛纳斯县| 健康| 界首市| 山丹县| 南开区| 新蔡县| 礼泉县| 玉门市| 乌兰浩特市| 兴化市| 古丈县| 桂阳县| 策勒县| 扎兰屯市| 广州市| 沁阳市| 彭州市| 仁化县| 汉寿县| 西昌市|