哪些公司做企业网站,深圳知名网站,中国建筑装饰装修,金蝶软件免费版关联管理器应用在 一对多的表 或者 多对多的表 多对多表中的用法: 在多对多的表中 正向查询 #基于对象的查询
#正查
# author_obj Author.objects.get(id1)
# print(author_obj) #Author object: 1 吴晓波
# print(author_obj.book_set.all()) #出版过的所有的书 …关联管理器应用在 一对多的表 或者 多对多的表 多对多表中的用法: 在多对多的表中 正向查询 #基于对象的查询
#正查
# author_obj Author.objects.get(id1)
# print(author_obj) #Author object: 1 吴晓波
# print(author_obj.book_set.all()) #出版过的所有的书 QuerySet [Book: 小王子, Book: 哈利波特] 在反向查询中会有用到关联管理器 #反向
# book_obj Book.objects.get(id1)
# print(book_obj) #小王子#联合出版小王子这本书的所有作者
# print(book_obj.author.all())
#QuerySet [Author: Author object: 1 吴晓波, Author: Author object: 3 俞敏洪]# 设置多对多关系
# author_obj Author.objects.get(id1) ##Author object: 1 吴晓波
# author_obj.book_set.set([4,5]) # 要关联对象的ID [ 对象的id对象的id]
# 把书籍id4 和 书籍id5 的跟author id1的绑定在一起, author id1之前绑定的给清除了
# print(author_obj.book_set.all())# author_obj.book_set.set(Book.objects.all())
# print(author_obj.book_set.all()) #把所有的书籍都跟author id1的给绑定# 添加多对多的关系
# author_obj Author.objects.get(id2) #author id 2的
# author_obj.book_set.add(3) # 要关联对象的ID 直接通过id找对象就类似于学生的学号,但是不确定这个学生到底在不在
# 类似于反向查询 在book表中找到 book id3 的跟author id2 的绑定
# print(author_obj.book_set.all())# author_obj Author.objects.get(id2) #author id 2的
# author_obj.book_set.add(Book.objects.get(id2)) # 要关联对象
# #这种方法就类似于直接找到学生 再把学生叫过来 然后绑定关系
# print(author_obj.book_set.all())# 删除多对多关系
# author_obj Author.objects.get(id1)
# author_obj.book_set.remove(1) # 要关联对象的id
# # 找到book表中id1 的 删除和author id1 之间的关系
# print(author_obj.book_set.all())# author_obj Author.objects.get(id1)
# author_obj.book_set.remove(Book.objects.get(id2)) # 要关联对象
# # 把book表中的对象找出来 然后处理和author的关系
# print(author_obj.book_set.all())# 清空当前对象的多对多的关系
# author_obj Author.objects.get(id1)
# author_obj.book_set.clear() #解除所有的绑定关系
# print(author_obj.book_set.all())#创建一条多对多的关系 create()
author_obj Author.objects.get(id1)
author_obj.book_set.create(title太亮教抛光,price50)
print(author_obj.book_set.all()) 多对一表中的用法: #基于对象的查询 正向查询
book_obj models.Book.objects.get(id1) #拿到第一个book对象
# print(book_obj) # Book object: 1 小王子
# print(book_obj.title) # 小王子
# print(book_obj.publisher) #正查按字段 书的出版社 沙河出版社
# print(book_obj.publisher_id) #这本书对应的出版社的id 1 # 反向查询
# pub_obj models.Publisher.objects.get(id3)
# print(pub_obj.name) #人民出版社# 反向查询 查询出版社出的所有书籍
# ret pub_obj.book_set.all()
# print(ret)
# QuerySet [Book: 解忧杂货普, Book: 精进]# ret pub_obj.books.all() # related_namebooks 反向查询时使用 不用再用表名小写_set了
# print(ret) #QuerySet [Book: 解忧杂货普, Book: 精进]# 基于字段的查询
# 查沙河出版社出版的书
# ret models.Book.objects.filter(publisher__name沙河出版社)
# print(ret)# ret Book.objects.filter(publisher__name沙河出版社)#找 精进这本书 的出版社是哪个 反查 指定了related_namebooks
# ret Publisher.objects.filter(books__title精进)#不指定related_name
# ret Publisher.objects.filter(book__title精进)
# print(ret)# Django ORM 之 关联管理器(RelatedManager) *********
# “关联管理器”是在一对多或者多对多的关联上下文中使用的管理器
# 对于ForeignKey对象这个方法仅在nullTrue时存在
# 外键字段可以为null 才有remove和clear 只能写对象
# 外键 在Book 表中
# id为1的出版社 出版过的书籍
pub_obj Publisher.objects.get(id1)
print(pub_obj.book_set.all()) #QuerySet [Book: 小王子, Book: 三国]# 从关联对象集中移除执行的模型对象 remove(一个对象)
ret pub_obj.book_set.remove(Book.objects.get(id1))
print(ret)pub_obj.books.clear()pub_obj.books.create(title太亮的产后护理) 转载于:https://www.cnblogs.com/kenD/p/10079700.html