В моей таблице есть два столбца, в которых хранятся дни, с которых начинаются и заканчиваются конкретные сделки. Значения этих столбцов являются ints и следуют одному и тому же шаблону библиотеки datetime, которую использует Python.Сравнение дневных диапазонов с Django
В настоящее время моя логика работает для дневных диапазонов, которые не обтекают неделю, т.е. Понедельник-пятница, четверг-суббота, вторник-четверг и т. Д. Я не уверен, как поймать сделки, которые попадают на следующую неделю, такие как пятница-понедельник, суббота-вторник и т. Д. Вот мое заявление с использованием Django:
Deal.objects.filter(Q(deal_day_start__lte=current_day) & Q(deal_day_end__gte=current_day))
Очевидно, что это дает мне проблемы для диапазонов пятница - понедельник, поскольку текущий день, например, может быть воскресным, а это 0 в день и день начала сделки - 5 для пятницы.
Есть ли простой способ решить эту проблему с помощью Django? Если бы я использовал инструкции Python if else, я мог бы создать несколько ветвей и захватить этот сценарий, но я не уверен, как это сделать с помощью Django.
int, представляющий только будний день, является ужасной идеей ... переосмыслить схему базы данных ... –
@JoranBeasley Не стоит беспокоиться. Достаточно рано в проекте, чтобы я мог его изменить. Как вы рекомендуете хранить дни в неделю и использовать их для сравнения? – farbodg
просто сохраните отметку времени начала дня и даты окончания ... таким образом, у вас есть вся информация –