如何计算 Django 中两个日期之间的平均差异?

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)

获得平均值的正确方法是什么?

scr*_*ter 5

正如文档所说:

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)