如何在 Django 中获得总持续时间

时间:2021-04-21 04:40:48

标签: python django python-datetime duration

我正在尝试显示特定作品的持续时间。

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 模型中获取持续时间?

1 个答案:

答案 0 :(得分:1)

您可以使用两种解决方案。

  1. 使用 start_date 和 end_date 作为日期时间字段。
  2. a,b=self.start_date, self.end_date.date()。仅使用 end_date 到日期。

希望这会奏效。