Я занимаюсь разработкой менеджера по назначениям для офиса врача. Существует возможность создать расписание, например, если человек хочет приехать три раза в неделю (понедельник, среда и пятница) в 9:00, начиная с 01/02/17 до 02/24/17 пользователь может создать расписание, указав именно эти данные: дату начала, дату окончания, время, дни недели. Приложение сообщит об этом пользователю, если в это время уже зарегистрировано назначение, поэтому у пользователя есть возможность изменить расписание или принять в любом случае, что приведет к расписанию, которое пропустит ранее занятые встречи. Я использую рамки Джанго разработать приложение В моей Schedule
модели у меня есть следующий кодDjango: Лучший способ оценить состояние
monday = models.BooleanField(default=False)
tuesday = models.BooleanField(default=False)
wednesday = models.BooleanField(default=False)
thursday = models.BooleanField(default=False)
friday = models.BooleanField(default=False)
saturday = models.BooleanField(default=False)
У меня возникли проблемы, выясняя лучший способ проверить, если назначение уже забронировано между датами ввода ,
Я не знаю, если вопрос ясен, так что я уеду пример:
Я хочу, чтобы запланировать встречи с 01/02/17 до 02/24/17 каждый вторник и четверг в 9 : 00. Назначение было ранее создано 01/19/17 в 9:00 для другого пациента. Приложение должно предупредить об этом пользователя.
Я хотел бы знать, если есть лучший способ проверить это, а не:
appointments = Appointment.objects.filter(date__range=[start_date, end_date])
for appointment in appointments:
if monday and appointment.weekday() == 0:
check if appointment time == input time
do something
elif tuesday and appointment.weekday() == 1:
check if appointment time == input time
do something
elif wednesday and appointment.weekday() == 2:
check if appointment time == input time
do something
elif thursday and appointment.weekday() == 3:
check if appointment time == input time
do something
elif friday and appointment.weekday() == 4:
check if appointment time == input time
do something
elif saturday and appointment.weekday() == 5:
check if appointment time == input time
do something
Возможно, есть способ, чтобы извлечь из базы данных только встречи между этими датами, которые имеют те же как время ввода графика.
Надеюсь, что это несколько понятно.