Задать вопрос
@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()

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

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

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

Похожие вопросы
Strikt Москва
от 100 000 до 180 000 ₽
Крона Лабс Екатеринбург
от 200 000 ₽
Sim-Ba Pay Санкт-Петербург
от 180 000 ₽