django如何比较两个字段差值范围?

在做项目时有如下需求,比如一个数据库db有两个数字型字段a和b,现想查询10<=b-a<=20的字段,如何实现?
我的方法:
变换条件用F方法查询:

#先查询前半部分,b-a>=10,条件可换为b>=a+10
result1=db.object.filter(b__gte=(F(a)+10))
#再查后半部分,b-a<=20,条件换为b<=a+20
result2=db.object.filter(b__lte=F(a)+20))
#最后结果
result=restult1&result2

也可再加入Q方法简化为一次查询:

result=db.object.filter(Q(b__gte=(F(a)+10)))&Q((b__lte=F(a)+20)))

以上为我使用的方法,有更好的方法的欢迎留言探讨交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值