我試圖找到一些事件的累計持續時間,'開始'和'結束'字段都是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.
我不能agreggate(SUM)開始,分別終止然後在。減去蟒蛇因爲DB不能總datetime對象。
一個沒有原始sql的好方法嗎?
您的Delorean似乎很好地運行;-)。但事實上,如果我的項目仍然存在,那麼我無法再構建SQL中的總和,因爲我彌補了數量巨大的數額(星期日,星期日,夜晚,白天......) – christophe31