Django 外來鍵ForeignKey中的on_delete
當你在Django中刪除了一個有著外來鍵關聯的資料時,比如一個作者和他名下的所有的書的資訊,書的外來鍵是作者(一個作者可有好多本書),當你把作者的資訊從資料庫中刪除時,Django提供了一下幾個引數來對作者的書的資料進行操作
外來鍵的定義:
#models.py
class Author(models.Model):
author = models.CharField(max_length=250)
class Books(models.Model):
book = models.ForeignKey(Author,on_delete=models.CASCADE)
CASCADE:刪除作者資訊一併刪除作者名下的所有書的資訊;
PROTECT:刪除作者的資訊時,採取保護機制,丟擲錯誤:即不刪除Books的內容;
SET_NULL:只有當null=True才將關聯的內容置空;
SET_DEFAULT:設定為預設值;
SET( ):括號裡可以是函式,設定為自己定義的東西;
DO_NOTHING:字面的意思,啥也不幹,你刪除你的幹我毛線關係
相關推薦
Django 外來鍵ForeignKey中的on_delete
當你在Django中刪除了一個有著外來鍵關聯的資料時,比如一個作者和他名下的所有的書的資訊,書的外來鍵是作者(一個作者可有好多本書),當你把作者的資訊從資料庫中刪除時,Django提供了一下幾個引數來對作者的書的資料進行操作 外來鍵的定義: #models.pyclass Author(models.Mo
Django外來鍵(ForeignKey)操作以及related_name的作用
之前已經寫過一篇關於Django外來鍵的文章,但是當時並沒有介紹如何根據外來鍵對資料的操作,也就是如何通過主表查詢子表或者通過子表查詢主表的資訊 首先我定義了兩個模型,一個是老師模型,一個是學生模型,一個老師對應多個學生,這個算是一個一對多的型別(如下圖所示)
django 外來鍵查詢 一對多 通過物件查詢和通過filter values 雙下劃線查詢
表結構: from django.db import models class Book(models.Model): name = models.CharField(max_length=32) price = models.IntegerField() pub_d
Mysql外來鍵設定中的CASCADE、NO ACTION、RESTRICT、SET NULL
今天在使用Navicat for mysql設計表時,在設定外來鍵的時候,刪除時和更新時兩列有四個值可以選擇:CASCADE、NO ACTION、RESTRICT、SET NULL,自己全親自試了一遍,它們的區別如下: CASCADE:父表delete、up
Django 外來鍵操作
django中,如果一個數據庫中的表之間有外來鍵的話可以方便的通過一個表查詢到其相關表的資料。如有下面三個model: class Blog(models.Model): name = models.CharField(max_length=100
MySQL外來鍵設定中的的 Cascad…
. cascade方式 在父表上update/delete記錄時,同步update/delete掉子表的匹配記錄 . set null方式 在父表上update/delete記錄時,將子表上匹配記錄的列設為null 要注意子表的外來鍵列不能為not null . No action方式
django 外來鍵model的互相讀取
先設定一個關係模型如下: from django.db import models class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextF
Django外來鍵關係描述
注:本文需要你有一定的資料庫知識,本文的資料庫語法使用mysql書寫 Django中,跟外來鍵有關的關係有三種,下面來一一介紹。 OneToManyField 這種最好理解,說白了就是最普通的外來鍵,看看下面兩個模型: class GoodsType
關於django 2.x版本中models.ForeignKey() 外來鍵說明
下面是程式碼 class GroupInfos(models.Model): uid = models.AutoField(primary_key=True) caption = models.CharField(max_length=32, unique=True)
Django中外來鍵使用詳解
在寫專案的過程中我們不可避免的會使用到外來鍵這個東西,那麼Django中是怎樣來使用外來鍵的呢? 瞭解外來鍵 在MySQL中,表有兩種引擎,一種是InnoDB,另外一種是myisam。如果使用的是InnoDB引擎,是支援外來鍵約束的。外來鍵的存在使得ORM框架在處理表關係的時候異常的
django ModelForm中的外來鍵欄位值過濾的實現
1. Model class user_list(models.Model): user_name=models.CharField(unique=True, max_length=40) full_name=models.CharField(unique=True, max_l
django中外來鍵關聯表的查詢隨筆
django中,如果一個數據庫中的表之間有外來鍵的話可以方便的通過一個表查詢到其相關表的資料。如有下面三個model:class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextFie
【Django】刪除外來鍵 on_delete(六)
on_delete: Django2.0以上版本ForeignKey需新增新引數on_delete, on_delete指的是通過ForeignKey連線起來的物件被刪除後,當前欄位怎麼變化。 常見的選項有: models.CASCADE,對就物件刪除後,包含Fo
django學習——Model模型中多對多外來鍵如何查詢
在學習django時,首先需要設計的就是模型,模型包括一對多及多對多關係,這裡以Course與User兩個模型為例來解釋下多對多關係,以及查詢方式。 首先建立模型: class Course(models.Model): name = model
Django中ORM外來鍵和表的關係(Django程式設計-4)
外來鍵 在MySQL中,表有兩種引擎,一種是InnoDB,另外一種是myisam。如果使用的是InnoDB引擎,是支援外來鍵約束的。外來鍵的存在使得ORM框架在處理表關係的時候異常的強大。因此這裡我們首先來介紹下外來鍵在Django中的使用。 類定義為class ForeignKey(to,on_delete
django 筆記5 外鍵 ForeignKey
obj Go auto length cad true value 選擇 cts class UsserGroup(models.Model): uid = models.AutoField(primary_key=True) caption = mode
MySQL資料庫中主鍵和外來鍵的操作
在MySQL資料庫中,一般會涉及到主鍵和外來鍵,在上一個表中添加了主鍵之後,通常在下一個表中要新增外來鍵,但是添加了外來鍵之後,在實體類和資料庫中在加上上一個表的主鍵會比較好,這樣兩個表關聯之後,在上一個表查詢完成之後,將查詢是出來的欄位拿著去下一個庫裡查詢,會比較好。 select * fro
mysql中新增外來鍵約束失敗(cannot add foreign key constraint)
mysql中新增外來鍵約束遇到一下情況: cannot add foreign key constraint 出現這個問題一般是開發工作者對外來鍵的使用出現了疏忽,我們先清晰一下外來鍵的使用: 1. 外來鍵欄位不能為該表的主鍵; 2. 外來鍵欄位參考欄
MySQL中的外來鍵是什麼、有什麼作用
最近自學資料庫MySQL,然後有個疑問,一直不得其解,查詢了相關資料,最後還是沒有解決。 我的疑問是 "使用外來鍵約束" ,然後我對 "外來鍵" 這個詞不是很理解,查詢相關資料都是講一些術語,說外來鍵的主要作用是:保持資料的一致性、完整性
EF Core中外來鍵關係的DeleteBehavior介紹(轉自MSDN)
Delete behaviors Delete behaviors are defined in the DeleteBehavior enumerator type and can be passed to the OnDelete fluent API to control whether the de