我有一个模型如下。
File "D:\Henko\backend\lib\pybitcointools\bci.py", line 114, in
history (addr, offset))
File "D:\Henko\backend\lib\pybitcointools\bci.py", line 21, in
make_request raise Exception(p)
Exception: <urlopen error [Errno 13] Permission denied>
如果两个值都不为空,我需要获得记录列表的(time2 - time1)的平均值(以秒为单位)。
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()
这会出错,说'time_diff&#39;不是有效字段。我想将此列保留为派生属性。不是存储列。
答案 0 :(得分:1)
你首先需要找到差异,然后采取平均值。您可以像这样使用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'))
答案 1 :(得分:0)
你试过吗
time_avg = transactions.aggregate(Avg('time_diff')).values()