【问题标题】:How to calculate the duration using startTime & endTime fields in a QuerySet in Django?如何在 Django 的 QuerySet 中使用 startTime 和 endTime 字段计算持续时间?
【发布时间】:2012-08-22 08:41:29
【问题描述】:

我有这个模型:

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

【问题讨论】:

标签: python django django-queryset django-aggregation


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2018-11-02
    • 1970-01-01
    • 2011-01-28
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多