Django刪除多對多表關系 :

刪除多對多表關系 :


# 刪除子表與母表關聯關系,讓小虎不喜歡任何顏色
# 寫法1:
child_obj = Child.objects.get(name="apollo")
colors_obj = Colors.objects.all()
child_obj.favor=''
child_obj.save()
# 寫法2:
child_obj = Child.objects.get(name="apollo")
colors_obj = Colors.objects.all()
child_obj.favor.remove(*colors_obj)
# 寫法3:
child_obj = Child.objects.get(name="apollo")
child_obj.favor.clear()

?

# 刪除母表與子表關聯關系,讓所有人不再喜歡藍色
# 寫法1:
children_obj = Child.objects.all()
colors_obj = Colors.objects.get(colors="藍")
colors_obj.child_set.remove(*children_obj)

拆包變成了反向刪除??
# 寫法2:
colors_obj = Colors.objects.get(colors="藍")
colors_obj.child_set.clear()

?

#刪除子表數據,喜歡藍色的所有人都刪掉
colors_obj = Colors.objects.get(colors="藍")
colors_obj.child_set.all().delete()? #注意有.all()
#刪除所有child
Child.objects.all().delete()

刪除母表數據:
默認情況下,如此例中,刪除紅色,那么子表與顏色表是一對一或外鍵關系的,子表對應數據會自動刪除,
如:紅球,apollo與顏色表是多對多關系的話,不會自動刪除喜歡紅色的人,而是去掉紅色已選.
如果想讓與母表外鍵關聯的子表在刪除外鍵之后依舊可以保留子表數據,需要子表建表時加入以下字段
class Clothes(models.Model):
??? color=ForeignKey("Colors",null=True,on_delete=models.SET_NULL))?

#可為空,如果外鍵被刪后,子表數據此字段置空而不是直接刪除這條數據,同理也可以SET_DEFAULT,需要此字段有默認值

也可以加PROTECT =====》on_delete=models.PROTECT

再來一個身份證對應駕照的例子

class IDCard(models.Model):
??? id_num = models.CharField(max_length=32,unique=True)
??? id_name = models.CharField(max_length=32)

class DriverCard(models.Model):
??? diver_leverl = models.CharField(max_length=16)
??? driver_idcard = models.OneToOneField(IDCard,on_delete=models.PROTECT)

??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456273.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456273.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456273.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

git push/pull時總需要輸入用戶名密碼的解決方案

在提交項目代碼或者拉代碼的時候,git會讓你輸入用戶名密碼,解決方案:(我們公司用的是gitlab)執行git config --global credential.helper store命令然后git push origin your-branch會讓你輸入用戶名和密碼&#xff0c…

Django源代碼寫DetailView與ListView

基于類的通用視圖 - 展平索引 通用顯示視圖 以下兩個通用的基于類的視圖旨在顯示數據。在許多項目中,它們通常是最常用的視圖。 一、DetailView django.views.generic.detail.DetailView 在執行此視圖時,self.object將包含視圖正在操作的對象。 此視圖…

開源商務智能軟件Pentaho

1 簡介Pentaho是世界上最流行的開源商務智能軟件,以工作流為核心的,強調面向解決方案而非工具組件的,基于java平臺的商業智能(Business Intelligence,BI)套件BI,之所以說是套件是因為它包括一個web server平臺和幾個工具軟件:報表…

chrome用type=file獲取圖片路徑并轉base64字符串

1 html頁面 <div class"col-sm-2" style"height: 200px;margin-top: 14px;"> <input id"photo" name" " type"file" value"選擇圖片" ng-model"photoUrl"> <input type"button&qu…

Python - Django - 中間件 process_exception

process_exception(self, request, exception) 函數有兩個參數&#xff0c;exception 是視圖函數異常產生的 Exception 對象 process_exception 函數的執行順序是按照 settings.py 中設置的中間件的順序的倒序執行 process_exception 函數只在視圖函數中出現異常的時候才執行…

NTV Media Server G3性能測試

Hello&#xff01;大家好&#xff0c;我是資深測試工程師Jackie&#xff0c;今天我來和大家一起對云視睿博的高性能流媒體服務器NTV Media Server G3做一次性能測試。今天測試有一個小目標&#xff0c;那就是驗證在一臺普通的PC機上&#xff0c;NTV Media Server G3的并發能力是…

人生不只是上坡路

從前的自己都是非常順利的&#xff0c;覺得自己有一天一定可以成就一番事業。 可是誰也預料不到這幾年的變化&#xff0c; 似乎人生就要跌落到了谷底&#xff0c; 不知道該如何去面對&#xff0c; 壓力很大、惶恐不安、不知道未來的路該如何去走。 人生不只是上坡路&#xff0c…

Django 時間與時區設置問題

Django 時間與時區設置問題 在Django的配置文件settings.py中&#xff0c;有兩個配置參數是跟時間與時區有關的&#xff0c;分別是TIME_ZONE和USE_TZ 如果USE_TZ設置為True時&#xff0c;Django會使用系統默認設置的時區&#xff0c;即America/Chicago&#xff0c;此時的TIME_…

Oracle+ASM單機環境下,開啟歸檔的最簡單的方法

在ASM單機環境下&#xff0c;開啟歸檔的最簡單的方法。環境&#xff1a;oracle11g 11.2.0.4 登陸sqlplus[oracleudevasm ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.4.0 Production on Thu Jun 8 18:20:41 2017Copyright (c) 1982, 2013, Oracle. All rights reserved…

【Python】 配置解析ConfigParser 命令行參數解析optparser

ConfigParser ConfigParser包裝了配置文件的讀取和寫入&#xff0c;使得python程序可以更加輕松操作配置文件了。這里的配置文件是指.ini的那種文件&#xff0c;基本格式如下 [section_a] a_key1 a_value1 a_key2 a_value2[section_b] b_key1 b_value1 b_key2 b_value2 b_k…

解決:build_attrs() takes at most 2 arguments (3 given)

1.這個原因是由于captcha版本安裝太低引起的&#xff0c;所以導致register頁面打開報錯 2.解決辦法就是安裝更高級版本的captcha 解決pip install django-simple-captcha0.5.5

docker registry v2與harbor的搭建

docker的倉庫 1 registry的安裝 docker的倉庫我們可以使用docker自帶的registry,安裝起來很簡單&#xff0c;但是可能有點使用起來不是很方便。沒有圖形化。 開始安裝 1 使用鏡像加速器 2 curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://dc945b6d.m…

在windows下安裝Redis

一、下載windows版本的Redis 由于官網上沒有windows版的下載地址&#xff0c;所以需要下載windows版本的Redis有以下兩個地址&#xff1a; 博主的csdn資源地址&#xff1a;http://download.csdn.net/detail/u010608551/9778240 github下載地址&#xff1a;https://github.com/M…

Django REST framework【學習內容】

快速入門 我們將創建一個簡單的允許管理員用戶查看和編輯系統中的用戶和組的API。 項目設置 創建一個名為 tutorial 的新django項目&#xff0c;然后啟動一個名為 quickstart 的新app。 # 創建項目目錄 mkdir tutorial cd tutorial# 創建一個virtualenv來隔離我們本地的包依…

DotNetCore跨平臺~發布腳本PowerShell的設計

回到目錄 這幾天對PS情有獨忠&#xff0c;被它的強大功能所希引&#xff0c;它可以快速部署&#xff0c;快速發布&#xff0c;將一些連帶的動作一次的完成&#xff0c;挺方便&#xff0c;類似于早期的bat文件&#xff0c;也像linux平臺的bash腳本&#xff0c;但功能上&#xff…

解決: 'Cannot call `.is_valid()` as no `data=` keyword argument was ' AssertionError: Cannot call `

#注冊 def add_person(request):p_name request.POST.get("p_name")p_password request.POST.get("p_password")person_data {"p_name": p_name,"p_password": p_password,}print(person_data)serializer PersonSerializer(person…

軟件與程序

一、Java的起源 最初是為家用電器設計的&#xff0c;因為其特點適合于internet&#xff0c; 于是通過internet成為一種計算語言&#xff0c;一個平臺&#xff0c;一個網絡計算的架構。 二、Java平臺分類 ①JavaSE適用于普通PC及筆記本電腦&#xff0c;為其他JAVA程序的開發和運…

Django使用n內置模塊發送HTML格式的郵件

def send(request):# subject "小伙子很帥"# message "不禁夸啊"# send_mail(subject,message,"18332191389163.com",["18332191389163.com"])# return HttpResponse("ok")from django.core.mail import EmailMultiAltern…

EDM營銷之如何使郵件列表更加有效

營銷轉化往往是營銷人員專攻的必修課&#xff0c;大數據時代&#xff0c;只有真實有效的活躍用戶數據&#xff0c;才能進一步促進轉化。但仍然有想走捷徑的企業會選擇通過購買來獲取用戶數據&#xff0c;不僅數據質量不高&#xff0c;還會降低自身信譽等級。本次Focussend從購買…

spring用的很開心的標簽(隨時增加)

1Scheduled定時任務標簽&#xff0c;cron用表達式&#xff0c;或者其他幾種方式&#xff0c;方便不能說。使用再方法智商&#xff0c;不能設置范圍域。 2PropertySource定義在整個class文件上&#xff0c;整個class中可以直接用表達式獲取properties的內容。 3Value 定義在變量…