日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Django 多對多字段的更新和插入數據實例

瀏覽:31日期:2024-10-15 10:19:38

表的普通字段 一對多字段 多對多字段 插入數據

#插入數據def add(request): G_title=request.POST.get(’title’)#-------值為:python書本 G_publish=request.POST.get(’publish’) #-------值為:1 G_authors_list=request.POST.getlist(’authors’)#-------值為:[3,7] publish_obj=Publish.objects.get(id=G_publish)#查找Publish表對應id的obj authors_obj_list=Author.objects.filter(id__in=G_authors_list)#查找Author表對應id的多個obj title #-------普通字段 publish #-------一對多外鍵 authors #-------多對多外鍵 book_obj=Book.objects.create(title=G_title,publish=publish_obj)#添加普通和一對多外鍵的值 #添加多對多外鍵的值 方式一 book_obj.authors.add(*authors_obj_list) 方式二 for obj in authors_obj_list: book_obj.authors.add(obj) return redirect(’/index/’)

表的普通字段 一對多字段 多對多字段 修改數據

def edit(request,b_id):#b_id-----為書本的id G_title=request.POST.get(’title’)#-------值為:linux書本 G_publish = request.POST.get(’publish’)#-------值為:2 G_authors_list = request.POST.getlist(’authors’)#-------值為:[3,5] book_obj = Book.objects.get(id=b_id)#查找Book表要修改的id對象 publish_obj = Publish.objects.get(id=G_publish)#查找Publish表對應id的obj author_objs = Author.objects.filter(id__in=G_authors_list)#查找Author表對應id的多個obj book_obj.title=G_title #-------修改普通字段 book_obj.publish=publish_obj #-------修改一對多字段 book_obj.authors=author_objs #-------修改多對多字段 #注意:多對多字段 必須是.all()/.filter()等的查詢集(QuerySet) book_obj.save() #-------一定得save(),才能對數據庫進行修改 return redirect(’/index/’)

補充知識:Django的ManyToManyField(多對多)的使用以及through的作用

創建一個經典的多對多關系:一本書可以有多個作者,一個作者可以有多本書(如下)

Django 多對多字段的更新和插入數據實例

進行數據遷移,然后我們使用python manage.py sqlmigrate app(應用名) 遷移文件名 查看一下sql語句(如下):

Django 多對多字段的更新和插入數據實例

從圖可以看出生成了三張表,一個是book(書籍)表包含id,title兩個字段,一個是author(作者表)包含id,name,email三個字段,這是我們剛剛在models.py文件中創建兩個模型,但是有一點需要注意的是在book表里面沒有我們創建的authors表,而是多了一個book_authors表,在這張表里面又多了兩個字段book_id,author_id,其實這個第三張表就是用來存放書籍和作者之間映射關系的中間表

那么我們如何進行數據的查詢呢?

1.一本書的所有作者

b = Book.objects.get(id=1) b.author.all()

2.一個作者的所有書籍:

a = Author.objects.get(id=1)a.book_set.all()

3.給多對多的字段添加值(添加多對多關系):

Django 多對多字段的更新和插入數據實例

從多對多字段中刪除值(刪除多對多關系):

Django 多對多字段的更新和插入數據實例

可以看出這個blog_book_authors是根據多對多關系自動生成的關系表,但是如果我們想要搜集關于這個作者發布某一本書籍的時間額外增加一個字段,或者說與現有的系統集成,這個關系表已經存在了,那對于這樣的情形,Django允許指定一個用于管理多對多關系的中間模型,然后就可以把這些額外的字段添加到這個中間模型中,具體的方法就是在ManyToMany字段中指定through參數指定作為中介的中間模型,修改上述models.py:

Django 多對多字段的更新和插入數據實例

查看一下此時的數據庫表結構:

Django 多對多字段的更新和插入數據實例

在創建BookAuthor類的最后使用了自定義的名稱,這個也可以不用指定,系統可以自動生成表名

仔細觀察BookAuthor這個類,也就是我們前面講到的中間模型,同時我們看到在創建中間模型的時候我們創建了兩個外鍵,這兩個外鍵定義了兩個模型之間是如何關聯到一起的

所以當創建多對多關系模型的時候提倡使用through參數去指定并創建中間模型,這樣比較方便我們進行字段的擴展

那么此時我們又該如何添加和刪除多對多關系呢?還能使用和剛剛相同的方法嗎?

# 添加作者 ringo ringo = Author.objects.create(name=’Ringo’,email=’ringo@qq.com’) # 添加作者paul paul = Author.objects.create(name=’Paul’,email=’paul@qq.com’) # 添加書籍 python book1 book1 = Book.objects.create(title=’python book1’) # 給多對多添加值也就是添加多對多關系 m1 = BookAuthor(author=ringo,book=book) # 第二種添加方式 m2 = BookAuthor.objects,create(author=paul,book=book1)

當我們使用多對多的中間模型之后,add(),remove(),create()這些方法都會被禁用,所以在創建這種類型的關系的時候唯一的方法就是通過創建中間模型的實例

以上這篇Django 多對多字段的更新和插入數據實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
电影亚洲精品噜噜在线观看| 免费久久99精品国产| 无码日韩精品一区二区免费| 婷婷精品视频| 四虎影视精品| av一区二区高清| 亚洲爱爱视频| 久久青青视频| 亚洲成人精选| 快she精品国产999| 日韩欧美美女在线观看| 国产精品资源| 中文字幕在线视频网站| 国产一区二区精品久| 日韩在线高清| 老司机精品久久| 欧美一区激情| 91看片一区| 国产视频一区免费看| 五月亚洲婷婷 | 日韩久久一区| 久久精品国产网站| 久久视频国产| 欧美一区二区三区久久精品| 国产一区二区三区视频在线| 国产视频亚洲| 国产精品手机在线播放| 久久中文字幕二区| 国产精品网址| 久久av在线| 中文字幕在线官网| 日本在线视频一区二区| 国产精品免费99久久久| 欧美日韩激情| 国产va免费精品观看精品视频| 亚洲大片在线| 老司机免费视频一区二区| 国产亚洲综合精品| 国产超碰精品| 久久亚州av| 日韩中文字幕一区二区高清99| 三级精品视频| 福利视频一区| 国产黄色精品| 日本亚洲最大的色成网站www| 99视频精品全国免费| 欧美精品二区| 蘑菇福利视频一区播放| 久久久久国产精品一区二区| 国产欧美另类| 亚洲ww精品| 午夜在线一区| 亚洲午夜视频| 日韩不卡免费高清视频| 国产日韩欧美一区二区三区| 欧美成人综合| 亚洲精品护士| 国产精品www.| 国产精品天堂蜜av在线播放| 99国产精品免费视频观看| 精品国产精品久久一区免费式| 日韩国产欧美在线播放| 2023国产精品久久久精品双| 亚洲风情在线资源| 国产 日韩 欧美一区| 中文在线а√在线8| 一本大道色婷婷在线| 欧美1区免费| 国产亚洲福利| 日韩**一区毛片| 国产精品一线| 日韩1区在线| 欧美1区免费| 亚洲精品黄色| 老司机免费视频一区二区三区| 国产一区调教| av一区二区高清| 妖精视频成人观看www| 欧美一区不卡| 日韩大片在线| 蜜桃视频在线观看一区二区| 日韩av不卡一区二区| 精品国产乱码久久久久久1区2匹| 久久精品动漫| 69堂免费精品视频在线播放| 久久精品国产网站| 国产一在线精品一区在线观看| 免费的成人av| 国产精品99在线观看| 影音先锋久久| 欧美国产不卡| 欧美精品一区二区久久| 欧美中文日韩| av资源中文在线| 四虎成人精品一区二区免费网站| 精品久久久中文字幕| 亚洲欧洲日本mm| 美女久久99| 中文视频一区| 青青久久av| 国产精品毛片视频| 国产精品日韩久久久| 精品亚洲二区| 日韩高清电影免费| 免费视频亚洲| 国产+成+人+亚洲欧洲在线| 亚洲三级视频| 欧美13videosex性极品| 日韩欧美中文字幕一区二区三区| 国产高清不卡| 国产精品久久乐| 蜜桃视频一区二区三区在线观看| 中文在线资源| 久久久久久一区二区| 免费一区二区三区在线视频| 最新国产精品| 噜噜噜久久亚洲精品国产品小说| 国产亚洲一区二区手机在线观看| 国产欧美日韩免费观看| 亚洲欧美日韩视频二区| 麻豆中文一区二区| 国产精品亚洲产品| 日韩有吗在线观看| 男女性色大片免费观看一区二区| 日本在线高清| 群体交乱之放荡娇妻一区二区| 精品一区二区三区视频在线播放 | 性一交一乱一区二区洋洋av| 国产一区观看| 国产综合亚洲精品一区二| 91精品精品| 亚洲电影有码| 五月天综合网站| 三级在线观看一区二区| 99视频一区| 久久亚洲国产精品一区二区| 国产亚洲网站| 亚洲精品影院在线观看| 亚洲精品国产精品粉嫩| 日韩一二三区在线观看| 日韩av午夜在线观看| 日本免费在线视频不卡一不卡二| 欧美日本久久| 久久不卡日韩美女| 日韩深夜视频| 午夜电影亚洲| 亚洲精一区二区三区| 欧美精品导航| 欧美日韩一区二区三区视频播放| 狠狠躁少妇一区二区三区| 欧美福利在线| 国产精品欧美大片| 国产在线观看91一区二区三区| 成人在线视频免费| 欧美日韩国产亚洲一区| 日韩精品欧美精品| 久久精品欧洲| 亚洲精品在线观看91| 热久久久久久| 婷婷亚洲五月| 麻豆精品国产91久久久久久| 天堂av在线| 国产探花一区二区| 亚洲天堂成人| 亚洲青青久久| 免费看av不卡| 国产丝袜一区| 石原莉奈一区二区三区在线观看| 国产免费av一区二区三区| 精品五月天堂| 日本成人在线网站| 99久久久国产精品美女| 日本中文字幕不卡| 久久精品三级| 在线观看亚洲精品福利片| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 国产欧美视频在线| 久久国产88| 国内亚洲精品| 精品国产乱码久久久| 亚洲久久视频| 麻豆精品少妇| 国产情侣久久| 亚洲精品国产精品粉嫩| 亚洲高清激情| 亚洲a一区二区三区| 国产精品毛片aⅴ一区二区三区| 亚洲精品一二三区区别| 91精品国产自产在线观看永久∴| 美女视频一区在线观看| 日韩精品久久久久久| 99在线观看免费视频精品观看| 日韩精品免费一区二区在线观看| 精品一区二区三区中文字幕视频| 日韩精品中文字幕吗一区二区| 亚洲综合三区| 性色一区二区| 综合亚洲视频| 91福利精品在线观看| 国产精选一区|