python字典反向查找_Python学习---ORM查询之基于对象的正向/反向/聚合/分组/Q/F查询...

本文介绍了Python ORM查询的基本操作,包括基于对象的正向查询与反向查询,如正向查找通过`book_set`获取关联的Book对象,反向查找通过字段名访问关联对象。同时,文章讲解了一对多、多对多关系的条件查询,并展示了聚合查询与分组查询的使用,如`aggregate`和`annotate`函数。此外,还涉及了F查询和Q查询的概念及其应用场景。
摘要由CSDN通过智能技术生成

ORM查询之基于对象的正向查询与反向查询

对象形式的查询

# 正向查询

ret1=models.Book.objects.first()

print(ret1.title)

print(ret1.price)

print(ret1.publisher)

print(ret1.publisher.name) # ret1.publisher是book属性,是Publish对象,非queryset集合

# 反向查找

ret2=models.Publish.objects.last()

print(ret2.name)

print(ret2.city)

#如何拿到与它绑定的Book对象呢?

print(ret2.book_set.all()) # ret2.book_set是一个queryset集合,all()可以省略

print(ret2.book_set.all().values('title').distinct()) # 去重

ORM查询之基于条件的正向查询与反向查询

单表条件查询[双下划线实现表关联]:使用逗号分隔可以实现and的条件查询

# models.Book.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值

# models.Book.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据

# models.Book.objects.exclude(id__notin=[11, 22, 33]) # not in

# models.Book.objects.filter(title__contains=&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值