繁体   English   中英

如何在django过滤器中做小于或等于和大于等于?

[英]how to do less than or equal to and greater than equal to in django filter?

如何在django过滤器中做小于或等于和大于等于? 就像,我想在 django 视图中获得价值:- 10<=val<=50
为此,我在 sql 中使用了一些查询,如下所示:-

select count(*) from table_name where gender='MALE' and age<=50 and age>=10;

我在 Django 视图中尝试过这样的事情:-

tablename.objects.filter(Q(gender='MALE'),Q(age__lte=50) & Q(age__gte=10)).count()

但我得到了不同的价值观。 在 sql 中我得到了 65,在 django 中我得到了 29。sql 答案是正确的。 请帮我在 Django 视图中进行比较。

为什么不使用 _range 函数?

filter(gender='MALE', age__range=(10, 50))

请参阅此处: https : //docs.djangoproject.com/en/1.7/ref/models/querysets/#range

编辑新链接: https : //docs.djangoproject.com/en/3.0/ref/models/querysets/#range

如果你真的想使用>=<=你可以写:

Modelname.objects.filter(gender='MALE', age__gte = 10, age__lte = 50).count()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM