如何对购物车中的每个项目进行汇总*数量,例如第一个项目10 *-数量=总计,第二个项目x *数量=总计,此总和给了我购物车中所有项目的总和,而不是每个项目。
def add_produktshitje(request, shitje_id):
shitje = get_object_or_404(Shitje, id=shitje_id)
suma= Produ.objects.filter(shitje_id=shitje.pk).aggregate(totals=Sum(F('sasia')*F('cmimi'), output_field=FloatField()))
return render(request, 'polls/add_produktshitje.html', {'shitje':shitje,'suma':suma})
答案 0 :(得分:1)
那是因为您使用的是“汇总”,这是为了获得总计。您应该使用“注释”来获得所需的部分聚合。
更改此行
suma= Produ.objects.filter(shitje_id=shitje.pk).aggregate(totals=Sum(F('sasia')*F('cmimi'), output_field=FloatField()))
此行
suma= Produ.objects.filter(shitje_id=shitje.pk).values("product_name").annotate(totals=Sum(F('sasia')*F('cmimi'), output_field=FloatField()))
请注意,我添加了values("product_name")
,这样您可以选择要对注释进行分组的字段。我只是把“ product_name”放在您提到的购物车上,但是可以根据需要替换该字符串。
希望这会有所帮助。