私はいくつかのイベントの累積期間を見つけようとしています。 '開始'と '終了'フィールドは両方ともdjango.db.models.DateTimeField
フィールドです。計算されたフィールドをdjango ORMで集計する方法は? (未処理SQLなし)
from django.db.models import F, Sum
from my.models import Event
Event.objects.aggregate(anything=Sum(F('start') - F('end')))
# this first example return:
# AttributeError: 'ExpressionNode' object has no attribute 'split'
# Ok I'll try more SQLish:
Event.objects.extra(select={
'extra_field': 'start - end'
}).aggregate(Sum('extra_field'))
# this time:
# FieldError: Cannot resolve keyword 'extra_field' into field.
私が起動し、DBは合計DateTimeオブジェクトことができないので、pythonでsubstractその後、個別に終了(和)agreggateすることはできません。私は何をしたいのは、このように書かれているはず
。
raw SQLを使用しないで良い方法はありますか?それは
秒でクエリセット内のすべてのイベントの継続時間を返し
あなたのDeloreanはうまく動作しているようです。しかし、実際には私のプロジェクトがまだ残っていれば、私は合計金額(日曜、祝日、夜間、昼間など...) – christophe31