Задать вопрос
@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
проблема что хз как вы спроектировали базу/модель

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

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

Похожие вопросы