日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django(part35)--多对多映射

發(fā)布時間:2023/12/19 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django(part35)--多对多映射 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

學(xué)習(xí)筆記,僅供參考


文章目錄

    • 數(shù)據(jù)表關(guān)聯(lián)關(guān)系映射
      • 多對多映射
        • 查詢
        • 添加數(shù)據(jù)


數(shù)據(jù)表關(guān)聯(lián)關(guān)系映射


多對多映射


多對多表現(xiàn)了對象之間多對多的復(fù)雜關(guān)系,如: 每個人都有不同的學(xué)校(小學(xué),初中,高中,…),每個學(xué)校都有不同的學(xué)生。


  • 語法
#在關(guān)聯(lián)的兩個類中的任意一個類中,增加: 屬性 = models.ManyToManyField(Entry)
  • 示例
#一個作者可以出版多本圖書 #一本圖書可以被多名作者同時編寫class Author(models.Model):name = models.CharField('作家', max_length=50)class Book(models.Model):title = models.CharField('書名', max_length=50)authors = models.ManyToManyField(Author)

查詢


  • 通過 book 查詢對應(yīng)的所有的 authors
#可以通過authors表示對應(yīng)所有Author的查詢對象book.authors.all() #獲取 book 對應(yīng)的所有的author的信息book.authors.filter(age__gt=50) #獲取book對應(yīng)的author中年齡大于50歲的作者的信息
  • 通過 author 查詢對應(yīng)的所有的books
#author會生成一個屬性 book_set 用于對book查詢對象進行相關(guān)操作 author.book_set.all() author.book_set.filter() author.book_set.create(...) # 創(chuàng)建新書并聯(lián)作用author author.book_set.add(book) # 添加已有的書為當(dāng)前作者author author.book_set.clear() # 刪除author所有并聯(lián)的書 author.book_set.remove() # 刪除所author所有并聯(lián)的書

添加數(shù)據(jù)


from bookstore import models author1 = models.Author.objects.create(name='黃老師') author2 = models.Author.objects.create(name='王老師')book1 = author1.book_set.create(title="Python") #創(chuàng)建新書并關(guān)聯(lián)黃老師 author2.book_set.add(book1) #添加Python到王老師名下

總結(jié)

以上是生活随笔為你收集整理的Django(part35)--多对多映射的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。