减去日期时间字段

时间:2016-03-23 11:26:26

标签: python django

我花了大量时间在最后3个小时内搜索,我似乎无法弄清楚为什么我的代码无法正常工作。

import datetime
#get time since last status change
@property
def last_update(self):
    if self.statuschange_set.exists():
        last_change = self.statuschange_set.all()[0]
        return last_change.date_changed - self.created
    #if no status change has occurred, use creation date
    if not self.statuschange_set.exists():
        df = DateFormat(datetime.now())
        df = df.format("d/m/Y, P ") 
        return df - self.created
    return ""

代码在底部中断,我试图从创建日期中减去今天的日期。我测试了它,我能够从自己减去self.created,但上面的代码吐出一个异常值:

 Exception Value:   
 unsupported operand type(s) for -: 'unicode' and 'datetime.datetime'

我显然已经弄错了df错误,但即使从查看stackoverflow上的其他解决方案,我也无法找到解决问题的方法。

1 个答案:

答案 0 :(得分:3)

格式化没有意义,您可以将其保留为日期时间

return datetime.now() - self.created

如果您确实需要格式化,则应在计算

之后执行
df = DateFormat(datetime.now() - self.created)
...
return df