Django - 计算created_at和done_at之间的平均时间

MRu*_*ade 2 python django

假设我在数据库中有 100 个对象,每个对象都有created_at时间done_at。我想计算所有对象的平均持续时间。有这样的想法:首先计算所有对象的持续时间,然后取平均值。但是还有其他好的方法可以帮助您吗?

Jie*_*ter 5

您可以使用aggregate()andF表达式来实现:

from django.db.models import Avg, F

Model.objects.aggregate(average_delta=Avg(F('done_at') - F('created_at')))
Run Code Online (Sandbox Code Playgroud)