1

我有这个模型:

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
4

1 回答 1

1

我将为此使用一种解决方法。

创建一个名为持续时间的新字段。

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

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

于 2012-08-27T21:10:43.547 回答