我试图过滤在某一天安排的Match
。我不能做到这一点:Django:日期时间按日期过滤忽略时间
match_queryset.filter(start=date)
,因为它也被时间过滤器,但我可以这样做:
match_queryset.filter(start__year=a_date.year, start__month=a_date.month, start__day=a_date.day)
但这是太复杂了,我觉得有可能是一个更简单的方法。
然后我还可以使用范围:
t0 = datetime.datetime.combine(a_date, datetime.time(0, 0))
t1 = datetime.datetime.combine(a_date, datetime.time(23, 59, 59))
match_queryset.filter(start__gte=t0, start__lte=t1)
但这只是似乎是矫枉过正,它可能产生低效的查询。
难道我不能只是查询目标的实际日期?例如:
# this of course doesn't work
match_queryset.filter(start__date=date)
不需要说我已尝试寻找解决方案,找不到任何。
查看https://stackoverflow.com/a/1973917/2689986 –
@AshishNitinPatil这实际上是我的第二个解决方案 – dabadaba
我提到了这句话:因为它非常详细,有计划使用'__date'运算符来改进语法。请查看“[#9596比较DateTimeField与日期太难](http://code.djangoproject.com/ticket/9596)”了解更多详情。 –