Python Django计算计算字段的平均值

Python Django计算计算字段的平均值,python,django,django-models,django-rest-framework,Python,Django,Django Models,Django Rest Framework,我有一个模型如下 class Transaction(models.Model): time1 = models.DateTimeField(null=True) time2 = models.DateTimeField(null=True) @property def time_diff(self): return time2.total_seconds() - time1.total_seconds() 如果两个值都不为空,我需要获取记录

我有一个模型如下

class Transaction(models.Model):

    time1 = models.DateTimeField(null=True)
    time2 = models.DateTimeField(null=True)

    @property
    def time_diff(self):
        return time2.total_seconds() - time1.total_seconds()
如果两个值都不为空,我需要获取记录列表的(time2-time1)平均值(以秒为单位)

time_avg = transactions.aggregate(total=Avg('time_diff',field='time_diff'))
这会出现一个错误,说明“time_diff”不是有效字段。我想将此列保留为派生属性。不是存储列。

您尝试过吗

time_avg = transactions.aggregate(Avg('time_diff')).values()

你首先需要找到不同,然后采取行动。您可以像这样使用django
F
函数

from django.db.models import F    
result = Transaction.objects.filter('your_filter_here').annotate(time_diff=F('time1')-F('time2')).aggregate(Avg('time_diff'))

你能补充一下你试过什么,有什么问题吗?谢谢。我编辑了这个问题。您不能在queryset中筛选属性,您需要使用F()函数来完成此操作。顺便说一句,这是你的后端数据库?