Django queryset получает все данные, которые проходят выбранную дату - PullRequest
0 голосов
/ 01 апреля 2019

Я создал объект из вызова модели Project, который выглядит следующим образом:

[
{
    "name": "project A"
    "start_date": 2019-01-01
    "end_date": 2019-02-15
},
{
    "name": "project B"
    "start_date": 2019-01-15
    "end_date": 2019-02-01
},
{
    "name": "project C"
    "start_date": 2019-02-27
    "end_date": 2019-03-12
},
]

если у меня есть селектор диапазона дат, и я выбираю дату от 2019-01-07 до 2019-02-10, и мой запрос выглядит следующим образом

model_object = Project.objects.all().filter(start_date__gte=(2019-01-07), end_date__lte=(2019-02-10))

Результат model_object queryset будет:

{
    "name": "project B"
    "start_date": 2019-01-15
    "end_date": 2019-02-01
},

Теперь я хотел, чтобы я мог отфильтровать запрос таким образом, чтобы я получил весь объект, который продолжается в промежутке между датой 2019-01-07 до 2019-02-10, что означает, что результат должен также включать project A, потому что он все еще продолжается с 2019-01-01 до 2019-02-15, хотя и началось до 2019-01-07

Любая помощь очень ценится, спасибо.

1 Ответ

2 голосов
/ 01 апреля 2019

Вы можете попробовать вот так:

import dateutil.parser

model_object = Project.objects.filter(start_date__lte=dateutil.parser.parse('2019-01-07'),  end_date__gte=dateutil.parser.parse('2019-02-10'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...