@dimash07

Django. Как проверить входит ли промежуток времени в другой промежуток?

Доброго времени суток!
Есть записи бронирования где есть два параметра from_date, to_date. При добавлении нового бронирования имеются такие же параметры, и проверяется есть ли какие либо записи которые касаются этого промежутка, в случае нахождения возвращать FALSE, а если свободно то TRUE.
Например есть записи:
А) с 14.02.2020 до 19.02.2020
Б) с 20.02.2020 до 23.02.2020

Проверка:
1) 15.02.2020 - 17.02.2020 FALSE
2) 08.02.2020 - 15.02.2020 FALSE
3) 16.02.2020 - 21.02.2020 FALSE
4) 08.02.2020 - 13.02.2020 TRUE
5) 24.02.2020 - 29.02.2020 TRUE

В голову пришло только это, но работает некорректно, аж мозги кипят)
qs = Booking.objects.filter(status__in=[BookingStatus.CONFIRMED, BookingStatus.PAYED, BookingStatus.ACTIVE])\
.filter(Q(from_date__range=(from_date, to_date)) | Q(to_date__range=(from_date, to_date)))\
.count()

Плз, хелп! Заранее спасибо!
  • Вопрос задан
  • 233 просмотра
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
проблема что хз как вы спроектировали базу/модель

потому что ничегого нового, нужно только проверить на больше меньше две даты
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
23 апр. 2024, в 19:21
300 руб./за проект
23 апр. 2024, в 19:05
15000 руб./за проект
23 апр. 2024, в 19:01
7000 руб./за проект