Django/Python - Проверить дату на текущей неделе Я хотел бы сделать что-то вроде этого: entries = Entry.objects.filter(created_at__in = current_week()) Как сделать это для хорошей производительности. Спасибо! Изменить: я до сих пор не знаю, для функции current_week(). Ответ 1 Используйте __range. Сначала вам нужно рассчитать начало и конец недели: import datetime date = datetime.date.today() start_week = date - datetime.timedelta(date.weekday()) end_week = start_week + datetime.timedelta(7) entries = Entry.objects.filter(created_at__range=[start_week, end_week]) Ответ 2 Начиная с django 1.11, вы можете: Entry.objects.filter(created_at__week=current_week) Это даст вам неделю с понедельника по воскресенье, согласно ISO-8601. Чтобы запросить текущую неделю: from datetime import date current_week = date.today().isocalendar()[1] isocalendar() вернет кортеж с тремя элементами: (год ISO, номер недели ISO, день недели ISO). Ответ 3 Да, этот вопрос есть 2 года назад. Сегодня, когда у меня больше опыта, я рекомендую использовать arrow с меньшей болью при обработке даты. Оформить заказ: https://github.com/crsmithdev/arrow
Ответ 1 Используйте __range. Сначала вам нужно рассчитать начало и конец недели: import datetime date = datetime.date.today() start_week = date - datetime.timedelta(date.weekday()) end_week = start_week + datetime.timedelta(7) entries = Entry.objects.filter(created_at__range=[start_week, end_week])
Ответ 2 Начиная с django 1.11, вы можете: Entry.objects.filter(created_at__week=current_week) Это даст вам неделю с понедельника по воскресенье, согласно ISO-8601. Чтобы запросить текущую неделю: from datetime import date current_week = date.today().isocalendar()[1] isocalendar() вернет кортеж с тремя элементами: (год ISO, номер недели ISO, день недели ISO).
Ответ 3 Да, этот вопрос есть 2 года назад. Сегодня, когда у меня больше опыта, я рекомендую использовать arrow с меньшей болью при обработке даты. Оформить заказ: https://github.com/crsmithdev/arrow