1.多对多查询:涉及到两张表以上的查询。
author_obj = models.Author.objects.first() print(author_obj.name) # 查询金老板写过的书 ret = author_obj.books.all() print(author_obj.books,type(author_obj.books)) print(ret)
# 1.create # 通过作者创建一本书,会自动保存 # 做了两件事: # 1.在book表里创建一本新书;2.在作者和书的关系表中添加关联记录 author_obj.books.create(title="金老板自传",publisher_id=2)
# 2.add # 在金老板关联的书里面,再加一本id是4的书 book_obj = models.Book.objects.get(id=4) author_obj.books.add(book_obj)
# 3.添加多个 book_objs = models.Book.objects.filter(id__gt=2) # 不可以直接add(book_objs) # 要把列表打散,再传进去 author_obj.books.add(*book_objs)
# 4.直接添加id author_obj.books.add(3)
# 5.remove # 从金老板关联的书里面把开飞船 删掉 book_obj = models.Book.objects.get(title="跟金老板学开飞船") author_obj.books.remove(book_obj) # 从金老板关联的书里面把id是8的记录删掉 author_obj.books.remove(8)
# clear # 清空 # 把id=2的作者所关联的所有书都删掉 author2_obj = models.Author.objects.get(id=2) author2_obj.clear() # 会提示:AttributeError: ‘Author‘ object has no attribute ‘clear‘
原文地址:https://www.cnblogs.com/cwj2019/p/11783144.html
时间: 2024-11-10 18:54:02