如何在Django中过滤DateTimeField的日期? [英] How can I filter a date of a DateTimeField in Django?
问题描述
与日期相比,我试图过滤一个 DateTimeField
。我的意思是:
MyObject.objects.filter(datetime_attr = datetime.date(2009,8,22))
我得到一个空的查询列表作为答案,因为(我想)我不考虑时间,但我想要任何一个时间。
Django有没有办法做到这一点?
我有时间在datetime已设置,它不是 00:00
。
解决方案在 django.views.generic.date_based
中实现,如下所示:
{'date_time_field__range':(datetime.datetime.combine(date,datetime.time.min),
datetime.datetime.combine(date,datetime.time.max))}
因为它是相当冗长的,所以有计划使用 __ date
运算符来改进语法。有关详细信息,请参阅#9596将DateTimeField与日期进行比较。
I am trying to filter a DateTimeField
comparing with a date. I mean:
MyObject.objects.filter(datetime_attr=datetime.date(2009,8,22))
I get an empty queryset list as an answer because (I think) I am not considering time, but I want "any time".
Is there an easy way in Django for doing this?
I have the time in the datetime setted, it is not 00:00
.
解决方案 Such lookups are implemented in django.views.generic.date_based
as follows:
{'date_time_field__range': (datetime.datetime.combine(date, datetime.time.min),
datetime.datetime.combine(date, datetime.time.max))}
Because it is quite verbose there are plans to improve the syntax using __date
operator. Check "#9596 Comparing a DateTimeField to a date is too hard" for more details.
这篇关于如何在Django中过滤DateTimeField的日期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!