我花了大量时间在最后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上的其他解决方案,我也无法找到解决问题的方法。
答案 0 :(得分:3)
格式化没有意义,您可以将其保留为日期时间
return datetime.now() - self.created
如果您确实需要格式化,则应在计算
之后执行df = DateFormat(datetime.now() - self.created)
...
return df