![](/img/trans.png)
[英]">", "<", ">=" and "<=" don't work with "filter()" in 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.