我在Django中有两个简单的表,如下所示:
class Session(models.Model):
id = models.AutoField(primary_key=True)
class Track(models.Model):
id = models.AutoField(primary_key=True)
session = models.ForeignKey(Session)
when = models.DateTimeField(null=False, auto_now_add=True)
我需要找到所有会话的平均持续时间。通过减去具有最低when
值的最高when
值来计算会话的持续时间。我可以这样做:
Session.objects.all().annotate(duration=Max('track__when') - Min('track__when')).aggregate(Avg('duration'))
有更好的方法吗?
感谢。
答案 0 :(得分:1)
正如我已经在Querying data from Django中回答了同样的问题,你不能只使用ORM API: