不用“开始”和“结束”,您可以使用
DurationField
,则从中计算“结束”属性。
class Period(models.Model):
number = models.PositiveIntegerField(primary_key=True)
start_time = models.TimeField()
duration = models.DurationField()
@property
def end_time(self):
return self.start_time + self.duration
您还应该能够在查询中使用结束时间,方法是将其与
annotate
查询集上的方法,即
query = Period.objects.all().annotate(end_time=F('start_time')+F('duration'))