week_day 日期时间的 Django 过滤器

Django Filter for week_day on DateTime

我正在尝试按照记录 here

使用过滤器 week_day

week_day¶

For date and datetime fields, a ‘day of the week’ match. Allows chaining additional field lookups.

Takes an integer value representing the day of week from 1 (Sunday) to 7 (Saturday).
entries = Booking.objects.filter(date__week_day__gte=2)

但这给了我错误:

Unsupported lookup 'week_day' for DateField or join on the field not permitted.

这怎么行不通?文档在那里显示它..

使用week_day__gte 将在 Django 1.9 中可用,但在 Django 1.8 中不可用。您链接到 development docs, the 1.8 docs are here.

工作日不多,如 Alasdair 回答中所述,查找 week_day__gte 尚不可用。

要解决该问题,您可以分别指定每个工作日:

import operator

entries = Booking.objects.filter(reduce(operator.or_, [Q(date__week_day__gte=weekday) for weekday in [2, 3, 4, 5, 6, 7]]))