如何使用Django时间域从开始和结束时间获取总时间?

2024-06-17 11:32:05 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,假设我必须在我的模型中使用TimeField。一个用于开始,一个用于结束。我如何从中得到总时间?基本上我有:

class Job(models.Model):
name = models.CharField(max_length=30)
date = models.DateField()
time_started = models.DateTimeField(blank=True, null=True)
time_finished = models.DateTimeField(blank=True, null=True)

def __str__(self):
    return self.name

我想做一些类似于模型方法或视图函数的事情,可能是这样的:

 def get_total_time(self):
        return time_finished - time_started

但这不起作用


Tags: name模型selftruereturntimemodelsdef
1条回答
网友
1楼 · 发布于 2024-06-17 11:32:05

您可以添加一个计算持续时间的属性,以便计算time_finishedtime_started之间的差异。但是,您应该检查两者是否都不是None。如果一个(或两个)是None,您可以返回None

class Job(models.Model):
    name = models.CharField(max_length=30)
    date = models.DateField()
    time_started = models.DateTimeField(blank=True, null=True)
    time_finished = models.DateTimeField(blank=True, null=True)

    @property
    def duration(self):
        if self.time_finished is not None and self.time_started is not None:
            return self.time_finished - self.time_started

    def __str__(self):
        return self.name

相关问题 更多 >