如何使用 group by 执行 django 查询,同时将两列相乘?

问题描述

我有这样的数据

产品@H_502_6@ type@H_502_6@ 数量@H_502_6@ 价格/数量@H_502_6@
巧克力 购买 2 100
巧克力 购买 4 200
冷饮 购买 3 300
巧克力 销售 3 200
冷饮 购买 1 100

现在我想按产品及其类型对数据进行分组,数量应等于特定类型的总数量。而总价应等于(价格(买入/卖出时的价格)*数量

例如。汇总结果应如上表

产品@H_502_6@ type@H_502_6@ 数量@H_502_6@ 总价@H_502_6@
巧克力 购买 6 1000
巧克力 销售 3 600
冷饮 购买 4 1000

到目前为止我已经尝试过这样做

Product.objects.values('product','type').annotate(quantity = Sum('quantity'),price = Sum('price',field='price*quantity)

它会回来

<QuerySet [{'product': 'chocolate','type': 'buy','quantity': 6,'price': 300.0},{'product': 'chocolate','type': 'sell','quantity': 3,'price': 200.0},{'product': 'colddrink','quantity': 4,'price': 400.0}]>

如您所见,它只是将价格相加而不是乘以数量。我做错了什么,或者任何人都可以建议如何做到这一点?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)