带外键的Django Sum Annotation

时间:2017-09-22 09:19:15

标签: python django

我正在开发一个项目,并注意到Django Sum()注释在使用它来创建带有外键的字段的总和时无法正常工作。

例如,当您访问某人可以下订单的网站时。 Order模型具有指向Visit模型的链接,因为您可以在一次访问中放置多个订单。但是,来自网站的订单不会访问网站。对于这些订单,访问将为NULL。当我执行以下操作时,计算不正确(值太高)。

visits = visits.annotate(order_total = Sum('order__total'))

当我将Sum更改为Avg时,计算正确完成。对此有合理的解释吗?

1 个答案:

答案 0 :(得分:1)

使用

解决它
#include <iostream>
#include <chrono>

typedef std::chrono::high_resolution_clock high_resolution_clock;

int main()
{
    auto i = high_resolution_clock::now();
    std::cout << i.time_since_epoch() << std::endl;
}

原来from pg_utils import DistinctSum visits = visits.annotate(order_total = DistinctSum('order__total')) 无法处理不同的值。