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 に答える