Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带外键的Django Sum注释_Python_Django - Fatal编程技术网

Python 带外键的Django Sum注释

Python 带外键的Django Sum注释,python,django,Python,Django,我正在处理一个项目,注意到DjangoSum()注释在使用它对带有外键的字段求和时工作不正常 例如,当您访问某个网站时,有人可以在该网站上下订单。订单模型有一个到就诊模型的链接,因为您可以在一次就诊中下多个订单。但是,不来自网站的订单不会进行网站访问。对于这些订单,访问将为NULL。当我执行以下操作时,计算不正确(该值太高) 当我将Sum更改为Avg时,计算是正确的。对此有逻辑解释吗?使用 from pg_utils import DistinctSum visits = visits.ann

我正在处理一个项目,注意到Django
Sum()
注释在使用它对带有外键的字段求和时工作不正常

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

当我将
Sum
更改为
Avg
时,计算是正确的。对此有逻辑解释吗?

使用

from pg_utils import DistinctSum

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

结果显示,
无法处理不同的值。

请显示数据示例。我刚刚发现过高的值是原始值的倍数。我认为这与不同的价值观有关?例如:3978.30变为51717.90(x13),189.90变为3418.20(x18)。@user2621686您最初的
访问
查询是什么样子的?
from pg_utils import DistinctSum

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