Эквивалент Django QuerySet для SQL между и - PullRequest
1 голос
/ 16 сентября 2009

Допустим, у меня есть следующая таблица:

Сотрудник

name      start_date       end_date
John      2009-10-10       2009-12-31
Joe       2009-12-01       2010-05-10

У меня также есть curr_date = '2009-11-01'. Если я хочу получить всех сотрудников, где curr_date должно быть между start_date и end_date сотрудника включительно, соответствующий SQL будет:

SELECT * 
FROM employee
WHERE curr_date between start_date and end_date

Соответствующий набор запросов Django, который я придумал:

Employee.objects.filter(start_date__lte=curr_date, end_date__gte=curr_date)

Есть ли альтернативный способ сделать вышеупомянутое с помощью QuerySet Django, метод __range не совсем подходит для вышеуказанного случая.

1 Ответ

1 голос
/ 17 сентября 2009

Вы правы, метод __range не будет работать, поэтому нет, нет способа использовать Django ORM для создания SQL, который вы ищете.

Есть ли проблема с использованием метода .filter, который вы придумали?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...