как сделать меньше или равно и больше или равно в Django фильтр?

как сделать меньше или равно и больше, чем равно в фильтре django? Например, я хочу получить значение вокруг : -10<=val<=50 в представлении django.
Для этого я использовал некоторый запрос в sql, как это : -

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

Я пробовал что-то подобное в Django view: -

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

но у меня разные значения. В sql я получил 65, а в django-29. ответ sql правильный. Пожалуйста, помогите мне сделать сравнение в Джанго.

2 ответов


почему вы не используете функцию _range?

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

см. здесь: https://docs.djangoproject.com/en/1.7/ref/models/querysets/#range


Если вы действительно хотите использовать >= и <= йо мог написать:

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