【发布时间】:2019-05-17 19:53:00
【问题描述】:
我想比较两个时间字段以获得小时和分钟的差异。
class Labor(models.Model):
id = models.AutoField(primary_key=True)
start_hour = models.TimeField(null=True)
end_hour = models.TimeField(null=True)
def hours(self):
return self.end_hour - self.start_hour
但是,如果尝试使用hours 方法,django 会抛出这个异常:
unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'
我希望差异返回给我这样的东西:
10:00 ~ 11:30 = 1:30
11:30 ~ 11:45 = 0:15
我该怎么做?
【问题讨论】:
-
你期望输出是什么?您需要使用
datetime来比较两个时刻。 Python 的time不支持-操作。从“中午”到“中午”的距离是多少?零? 24小时?除非您还具有时间的日期上下文,否则该操作没有意义。 -
尝试改用
models.DateTimeField