В настоящее время я пытаюсь отфильтровать результаты QuerySet по дням недели в Django 2.0.
Я не могу на всю жизнь заставить django week_day filter datetime__week_day
возвращать любые результаты.
Модель
class Session(models.Model):
def __str__(self):
return str.join(', ', (str(self.game.name), str(self.datetime_created), str(self.start)))
game = models.ForeignKey(
'Game',
on_delete=models.PROTECT,
blank=False,
null=False,
)
datetime_created = models.DateTimeField(auto_now_add=True,)
start = models.DateTimeField(blank=True, null=True,)
end_time = models.TimeField(blank=True, null=True,)
competitive = models.BooleanField(default=False,)
Фильтрация
filtered_sessions = Session.objects.filter(
start__week_day=2,
).exclude(start__isnull=True)
В настоящее время у меня есть запись в таблице сеансов (бэкэнд MySQL), которая содержит дату и время 2018-04-30 23:51:42.000000
, поэтому я ожидаю, что этот QuerySet будет содержать этот «сеанс», как это происходит в понедельник.
Возвращаясь к документации, неделя начинается с воскресенья (1) до субботы (7).
У меня в настройках USE_TZ
, TIME_ZONE='UTC'
.
Независимо от этих настроек я также пытался заменить start__week_day=2
значениями от 0 до 8 (включительно, на всякий случай)
У меня такой вопрос: почему то, что я пытаюсь, не дает никаких результатов?
Пожалуйста, дайте мне знать, если я пропустил что-то, что помогло бы ответить на мой запрос.
Спасибо!
EDIT:
С тех пор я пытался выполнить прямой запрос в базе данных (SELECT * FROM mysite_session WHERE DAYOFWEEK('start') IN (0-8);
)
Нет результатов в базе данных.