我有一个带有两个TimeField的模型。我想在模板中显示时差(即27分钟)。我看到过滤器的时间开始了,但是没有用。我认为它只接受日期时间,但是我的模型仅存储时间。
对@HAL的回应:
'datetime.time' object has no attribute 'year'
Exception Location: C:\Python27\lib\site-packages\django\utils\timesince.py in timesince, line 32
如果您知道两个时间戳对应的日期和时区,则只能进行比较。datetime.time
该类仅包含时间。我强烈建议您在这种情况下考虑使用DateTimeField
(使用datetime.datetime
)。
如果确定两个datetime.time
对象都具有相同的日期和时区,则可以将方法添加到模型中,如下所示:
import datetime
from django.utils.timesince import timesince
class MyModel(models.Model):
...
def get_time_diff(self):
dummydate = datetime.date(2000,1,1) # Needed to convert time to a datetime object
dt1 = datetime.combine(dummydate,self.t1)
dt2 = datetime.combine(dummydate,self.t2)
return timesince(dt1, dt2) # Assuming dt2 is the more recent time
在这里,时间值使用任意日期升级为datetime值。您可以从模板中调用{{ obj.get_time_diff }}
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句