Django datefield和timefield到python datetime [英] Django datefield and timefield to python datetime

查看:440
本文介绍了Django datefield和timefield到python datetime的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Django模型,单独的Datefield和Timefield是一个事件。有没有办法将它转换成python datetime对象,所以我可以用一些精度查询即将发生的事件?目前我只得到第二天的即将到来。



models.py

  event_time = models.TimeField()
event_date = models.DateField()

基本上,我可以用一分钟过滤,甚至分割第二个准则?



谢谢。

解决方案

使用 DateTimeField (请参阅本节)。转换为 datetime.datetime 由Django自动处理。



A DateField 导致一个 datetime.date 和一个 datetime.time 对象。您可以使用替换将这些值合并到更新的日期中:

 
>>> today = datetime.datetime.today()
>>>今天
datetime.datetime(2012,3,31,11,6,5 ,182371)
>>> time = datetime.time(11,30)
>>> today.replace(hour = time.hour,minute = time.minute)
datetime.datetime (2012,3,31,11,30,5,182371)

请注意,生成的 code>现在有11.30。还要注意,今天不被修改,它只是计算一个新的日期和时间。如您所见,您现在必须自己合并,因为这两个值都存储在单独的字段中。这就是为什么一个 DateTimeField 是一个更好的选择,如果你有能力修改模型的字段。


I have a Django model with separate Datefield and Timefield for an event. Is there a way to convert it to a python datetime object so I can query for the upcoming events with some precision? Currently I get only the upcoming of the following day.

models.py

event_time = models.TimeField()
event_date = models.DateField()

Basically, can I filter with a minute, or even split second precition?

Thank you.

解决方案

Use a DateTimeField instead (see this section in the docs). Conversion to a datetime.datetime is handled for you by Django automatically.

A DateField results in a datetime.date and a datetime.time object. You can use replace to merge these values into an updated date:

>>> today = datetime.datetime.today()
>>> today
datetime.datetime(2012, 3, 31, 11, 6, 5, 182371)
>>> time = datetime.time(11, 30)
>>> today.replace(hour=time.hour, minute=time.minute)
datetime.datetime(2012, 3, 31, 11, 30, 5, 182371)

Note that the resulting date has 11.30 as time now. Note also that today is not modified, it simply computes a new date and time. As you can see, you now have to do the merging yourself because both values are stored in separate fields. That's why a DateTimeField is a much better choice, if you have the ability to modify the model's fields.

这篇关于Django datefield和timefield到python datetime的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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