【发布时间】:2021-04-21 04:40:48
【问题描述】:
我正在尝试显示特定作品的持续时间。
class UserData(models.Model):
uid = models.CharField(max_length=100)
email = models.CharField(max_length=100)
start_date = models.DateField(auto_now_add=True,editable=False)
end_date = models.DateTimeField(auto_now=True)
@property
def duration(self):
if not (self.start_date and self.end_date):
return None
a,b=self.start_date, self.end_date
return '%s:%s' % ((b-a).days*24 + (b-a).seconds//3600, (b-a).seconds%3600//60)
但是当我调用 duration 属性来获取总时间时,它为 -: 'datetime.datetime' 和 'datetime.date' 提供了不支持的操作数类型错误。
如何从我的 UserData 模型中获取持续时间日期?
【问题讨论】:
-
同时使用 DateField
auto_now_add或default=timezone.now -
如果我在两个字段中都使用
auto_now_add,我不会得到 duration ,两者都会得到相同的时间。因为link -
一个是
DateTimeField,另一个是DateField。这两个之间的差异将不准确。持续时间总是从午夜开始计算。 -
@VishalSingh,是的,你是对的。我明白了。谢谢
标签: python django python-datetime duration