Django之多對(duì)多查詢與操作方法詳解
多對(duì)多表之間關(guān)系表
models.py文件代碼
from django.db import models # Create your models here. class Publisher(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=64,null=False,unique=True) def __str__(self): return "publisher_name:{}".format(self.name) class Book(models.Model): id = models.AutoField(primary_key=True) title = models.CharField(max_length=128,null=False) publisher = models.ForeignKey(to=Publisher,related_name="books") def __str__(self): return "book_title:{}".format(self.title) class Author(models.Model): id = models.AutoField(primary_key=True) name = models.CharField(max_length=16,null=False) book = models.ManyToManyField(to="Book") def __str__(self): return "author_name:{}".format(self.name)
查詢與操作方法代碼
import os if __name__ == '__main__': #加載Django項(xiàng)目的配置信息 os.environ.setdefault("DJANGO_SETTINGS_MODULE","testinclude.settings") #導(dǎo)入Django,并啟動(dòng)Django項(xiàng)目 import django django.setup() from ormtest import models #多對(duì)多查詢 #查詢作者(小白),寫過的所有書有那些 author_obj = models.Author.objects.get(name="小白") print(author_obj) author_obj_books = author_obj.book.all() print(author_obj_books) #1.create(為小白作者對(duì)象創(chuàng)建一本書) #首先:在book表中創(chuàng)建一本書,并指定相應(yīng)的出版社 #然后:在作者和書的多聯(lián)多系表中,自動(dòng)添加一條關(guān)聯(lián)記錄 author_obj.book.create(title="zabbix從入門到精通",publisher_id=3) #2.add(為小白作者,添加一本書(網(wǎng)絡(luò)基礎(chǔ)原理)) book_obj = models.Book.objects.get(title="網(wǎng)絡(luò)基礎(chǔ)原理") author_obj.book.add(book_obj) #3.remove(為作者小白,刪除一本書《網(wǎng)絡(luò)基礎(chǔ)原理》) #1、為作者小白,刪除一本書<網(wǎng)絡(luò)基礎(chǔ)原理> book_obj = models.Book.objects.get(title="網(wǎng)絡(luò)基礎(chǔ)原理") author_obj.book.remove(book_obj) #為作者小白,刪除一本書,書的id為4 author_obj.book.remove(4) #4.clear(把作者為小白的關(guān)聯(lián)的書,全部清空刪除) author_obj.book.clear()
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
java實(shí)現(xiàn)socket從服務(wù)器連續(xù)獲取消息的示例
這篇文章主要介紹了java實(shí)現(xiàn)socket從服務(wù)器連續(xù)獲取消息的示例,需要的朋友可以參考下2014-04-04Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)項(xiàng)目之在線服裝銷售商城系統(tǒng)的實(shí)現(xiàn)流程
基礎(chǔ)掌握怎么樣,用實(shí)戰(zhàn)檢驗(yàn)就知道了,本篇文章手把手帶你用java+SpringBoot+Maven+Vue+mysql實(shí)現(xiàn)一個(gè)在線服裝銷售商城系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平2022-01-01并行Stream與Spring事務(wù)相遇會(huì)發(fā)生什么?
這篇文章主要介紹了并行Stream與Spring事務(wù)相遇會(huì)發(fā)生什么?文章主要解決實(shí)戰(zhàn)中的Bug及解決方案和技術(shù)延伸,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05Java 入門圖形用戶界面設(shè)計(jì)之事件處理上
圖形界面(簡稱GUI)是指采用圖形方式顯示的計(jì)算機(jī)操作用戶界面。與早期計(jì)算機(jī)使用的命令行界面相比,圖形界面對(duì)于用戶來說在視覺上更易于接受,本篇精講Java語言中關(guān)于圖形用戶界面的事件處理2022-02-02java僅用30行代碼就實(shí)現(xiàn)了視頻轉(zhuǎn)音頻的批量轉(zhuǎn)換
這篇文章主要介紹了java僅用30行代碼就實(shí)現(xiàn)了視頻轉(zhuǎn)音頻的批量轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Mac配置 maven以及環(huán)境變量設(shè)置方式
這篇文章主要介紹了Mac配置 maven以及環(huán)境變量設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08Mybatis基于注解實(shí)現(xiàn)多表查詢功能
這篇文章主要介紹了Mybatis基于注解實(shí)現(xiàn)多表查詢功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-09java通過DelayQueue實(shí)現(xiàn)延時(shí)任務(wù)
本文主要介紹了java通過DelayQueue實(shí)現(xiàn)延時(shí)任務(wù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07JDK8 new ReentrantLock((true)加鎖流程
這篇文章主要介紹了java面試中常遇到的問題JDK8 new ReentrantLock((true)加鎖流程示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07Javaweb應(yīng)用使用限流處理大量的并發(fā)請(qǐng)求詳解
這篇文章主要介紹了Javaweb應(yīng)用使用限流處理大量的并發(fā)請(qǐng)求詳解,還是挺不錯(cuò)的,這里分享給大家,供需要的朋友參考。2017-11-11