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

How to get total duration in Django

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

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 属性 获取总时间时,它给出了 unsupported operand type(s) for -: 'datetime.datetime' 和 'datetime.date' 错误。

请问如何从我的 UserData 模型中获取持续时间?

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

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

希望这会奏效。