如何使用startTime&来计算持续时间Django中QuerySet中的endTime字段?

时间:2012-08-27 20:27:25

标签: python django django-queryset django-aggregation

我有这个型号:

class TimeInterval(models.Model):
    startTime = models.DateTimeField()
    endTime = models.DateTimeField()

如何仅使用QuerySet API聚合平均时间间隔?

我试过了:

qs = TimeInterval.objects.extra(
    select={"duration": "endTime - startTime"}).aggregate(
        Avg("duration"))

但它会抛出:

FieldError: Cannot resolve keyword 'duration' into field. Choices are:
endTime, startTime

1 个答案:

答案 0 :(得分:1)

我将使用解决方法。

创建一个名为duration的新字段。

为TimeInterval创建一个pre-save_signal,用于计算持续时间的值。

然后,您可以在查询中轻松使用持续时间字段。