Поиск __week_day
[Django -doc] использует значения, отличные от .weekday()
[pyton-doc] возврат. Действительно, если мы посмотрим на документацию поиска __week_day
, мы увидим:
Принимает целочисленное значение, представляющее день недели от 1 (воскресенье) до 7 (суббота) .
Тогда как .weekday()
возвращает:
Возвращает день недели как целое число, где Понедельник - 0 и Воскресенье - 6 .
Итак, нам нужно сначала выполнить сопоставление:
| mon tue wed thu fri sat sun
.weekday() | 0 1 2 3 4 5 6
__week_day | 2 3 4 5 6 7 1
Мы можем выполнить сопоставление с ((<i>x</i>+1) % 7)+1
, где x
является результатом .weekday()
:
def get_queryset(self):
day_query = self.request.GET.get('day')
if not day_query:
today = datetime.today().weekday()
day_query = <b>(today + 1) % 7 + 1</b>
return Job.objects.filter(dt_start__week_day=day_query)
Это может быть важно, если вы также указываете параметр day
, поскольку он Конечно, зависит от того, как вы интерпретируете значение.