Django多對多數據增刪改查
1.表結構及基本方法
1.表結構
# models.py
class Book(models.Model):
author = models.ManyToMany(to='author', relate_name='author')
"""
...字段
"""
class author(models.Model):
"""
...字段
"""
2.基本方法
# 增、刪、改
add() # 增加
remove() # 刪除表,只刪一條數據
clear() # 清空表, 把所有關系的表全部清空 例如 book_obj.author.clear() 表示把當前書籍對象的所有作者全部清空
2.查
# views.py
# 獲取主鍵id值為1的圖書對象
book_obj = models.Book.object.filter(pk=1).first()
# 通過圖書對象獲取該圖書對象下的所有作者
all_author = book_obj.author.all() # 這里的author字段是建表時候的字段名
# 結果為類似列表的querry_set列表對象
3.增
# views.py
author_list = [1, 2, 3, 4]
# 獲取當前新增的圖書對象
book_obj = models.Book.objects.create(
title=123,
price=123,
publish=123,
)
# 通過當前新增的圖書對象在多對多關系表中添加對應關系字段
book_obj.author.add(*author_list)
# save()方法保存
book_obj.save()
# add()方法可以接收一個值,也可以用逗號隔開接收多個值
4.改
# views.py
# 修改圖書作者為下方列表
author_list = [1, 2, 3, 4]
# 獲取當前修改的圖書對象
book_obj = models.Book.objects.filter(pk=1).first()
# 先清除當前圖書的所有作者再添加
book_obj.author.clear()
book_obj.author.add(*authors_list)
book_obj.save()
# 直接修改
book_obj.author.set(*authors_list)
