Django 多對多關系的增刪改查


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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM