fre*_*row 8 python django datetime
我有一个Django模型,它有一个事件的单独的Datefield和Timefield.有没有办法将其转换为python日期时间对象,以便我可以精确地查询即将发生的事件?目前我只得到第二天的即将到来.
models.py
event_time = models.TimeField()
event_date = models.DateField()
Run Code Online (Sandbox Code Playgroud)
基本上,我可以用一分钟过滤,甚至分开第二个预定吗?
谢谢.
Sim*_*ser 11
请DateTimeField改用(请参阅文档中的此部分).datetime.datetimeDjango会自动为您处理转换为a .
甲DateField导致datetime.date和一个datetime.time对象.您可以使用replace将这些值合并为更新的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)
请注意,结果date现在是11.30.另请注意,today未修改,它只是计算新的日期和时间.如您所见,您现在必须自己进行合并,因为两个值都存储在单独的字段中.这就是为什么a DateTimeField是一个更好的选择,如果你有能力修改模型的字段.
你应该像合并日期时间字段一样添加新字段.更好的性能.
event_full_datetime = models.DateTimeField()
Run Code Online (Sandbox Code Playgroud)
修复旧数据库.像这样的脚本的shell.
for obj in YourModel.objects.all():
obj.event_full_datetime = datetime.datetime( obj.event_date.year,obj.event_date.month, obj.event_date.day, obj.event_time.hour, obj.event_time.minut, obj.event_time.second)
obj.save()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25625 次 |
| 最近记录: |