如何在Django中筛选字段值大于指定阈值的对象
问题解答
这个需求完全可以实现,你写的写法不符合Django ORM的语法规范,ORM不支持直接在filter参数里用大于>、小于<这类运算符,需要用Django内置的字段查询表达式实现。
正确写法
大于指定值的查询要使用__gt(全称为greater than)后缀,修改后代码如下:
# Python语法中不需要加const关键字,常量默认用全大写下划线分隔命名即可 LIMIT_ID = 100 bigIdPeople = Person.objects.filter(id__gt=LIMIT_ID)
同类常用查询后缀
你可以根据需求替换后缀实现其他大小比较逻辑:
- 大于等于指定值:使用
__gte(greater than or equal to),示例:id__gte=LIMIT_ID - 小于指定值:使用
__lt(less than),示例:id__lt=LIMIT_ID - 小于等于指定值:使用
__lte(less than or equal to),示例:id__lte=LIMIT_ID - 不等于指定值:搭配
exclude方法实现,示例:Person.objects.exclude(id=LIMIT_ID)
内容的提问来源于stack exchange,提问作者lionel
相关产品推荐
相关产品推荐

