小编Nel*_*son的帖子

Django:计算同一模型中行上的字段之间的差异

我有一个模型,代表从运动开始的持续时间:

class Time(models.Model):
    # A participator of a race
    bib = models.ForeignKey(Bib, on_delete=models.CASCADE)
    # A timing point. Could be one at 0km, 5km and at the goal
    timing_point = models.ForeignKey(TimingPoint, on_delete=models.CASCADE)
    # The duration from start
    time = models.FloatField()
Run Code Online (Sandbox Code Playgroud)

我想计算每个围兜的两个计时点之间的持续时间。结果应该是一个查询集,每个号码布一行。我认为如果数据获取和持续时间计算可以在一个数据库查询中完成,那将是最有效的。这可以做到吗?如何做到?

为了澄清目标,我现在这样做(删除了异常处理):

    times = []
    for bib in bibs:       
        from_time = Time.objects.get(timing_point=from_point, bib=bib)        
        to_time = Time.objects.get(timing_point=to_point, bib=bib)
        times.append({'bib': bib, 'time': to_time.time - from_time.time, })        
Run Code Online (Sandbox Code Playgroud)

我想避免多次访问数据库,并且我更希望结果是一个 QuerySet,因为我希望能够执行其他操作,例如排序。

django django-queryset

3
推荐指数
1
解决办法
1369
查看次数

标签 统计

django ×1

django-queryset ×1