如何在Django中过滤DateTimeField的日期? [英] How can I filter a date of a DateTimeField in Django?

查看:237
本文介绍了如何在Django中过滤DateTimeField的日期?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

与日期相比,我试图过滤一个 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆