Dav*_*ave 2 django datetime date python-3.x
使用 Django 和 Python 3.7。我正在尝试编写一个查询来给出两个日期之间差异的平均值。我的模型中有两个字段,都是“DateTimeField”,我尝试像这样计算平均差异
everything_avg = Article.objects.aggregate(
avg_score=Avg(F('removed_date') - F('created_on'), output_field=models.DateTimeField())
).filter(removed_date__isnull=False)
return everything_avg
Run Code Online (Sandbox Code Playgroud)
但在运行上述命令时我最终收到此错误
AttributeError: 'dict' object has no attribute 'filter'
Run Code Online (Sandbox Code Playgroud)
获得平均值的正确方法是什么?
正如文档所说:
aggregate() 是 QuerySet 的终端子句,调用时返回名称-值对的字典。*
聚合方法返回一个字典,因此您需要在它之前进行过滤。因此,如果您按如下方式更改代码,您将得到结果:
everything_avg = Article.objects.filter(removed_date__isnull=False)\
.aggregate(
avg_score=Avg(
F('removed_date') - F('created_on'),
output_field=models.DateTimeField()
)
)
return everything_avg
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1637 次 |
| 最近记录: |