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