给出以下Contribution
模型:
class Contribution(models.Model):
start_time = models.DateTimeField()
end_time = models.DateTimeField(null=True)
是否可以使用Django数据库API重现以下SQL语句?
SELECT SUM(end_time - start_time) AS total_duration FROM contribution;
我已经弄清楚了这一点:
Contribution.objects.aggregate(total_duration=models.Sum( ??? ))
但我不确定如何代表end_time - start_time
部分。谢谢!
答案 0 :(得分:1)
目前还不可能,聚合中的F()对象有ticket,但没有什么好处。
我看到的唯一方法是在python中使用sum解决方法:
sum([x[1]-x[0] for x in Contribution.objects.values_list('start_time', 'end_time')])