我正在尝试编写一个视图,该视图将生成一个报告,显示我的库存系统中的所有项目,并在某个点提供摘要。顺便说一下,这个报告纯粹是一个 HTML 模板。
就我而言,每个项目都是订单的一部分。一个订单可以有多个项目,我希望能够在每个订单结束后显示基于 SUM 的摘要。
所以报告看起来像这样:
Order #25 <Qty> <Qty Sold> <Cost> <Cost Value>
Some Item 2 1 29.99 29.99
Another Item 4 0 10.00 40.00
<Subtotal Line> 6 1 39.99 69.99
Order #26 <Qty> <Qty Sold> <Cost> <Cost Value>
... Etc, you get the point
现在,我完全有能力显示所有值,并且已经有了一个显示所有项目的报告,但我不知道如何将小计放在报告中,而不需要这样做alot的查询。数量、销售数量和成本字段只是项目模型的一部分,而成本值只是一个简单的模型函数。
任何帮助,将不胜感激。提前致谢 :-)
小计为SELECT SUM(qty) GROUP BY order_number
things.
它们与获取详细信息的查询完全分开。
两个查询的结果需要交错。一个好方法是将每个订单创建为一个元组( list_of_details, appropriate summary )
.
然后显示就简单了
{% for order in orderList %}
{% for line in order.0 %}
{{ line }}
{% endfor %}
{{ order.1 }}
{% endfor %}
困难的部分是交错两个查询。
details = Line.objects.all()
ddict = defaultdict( list )
for d in details:
ddict[d.order_number].append(d)
interleaved= []
subtotals = ... Django query to get subtotals ...
for s in subtotals:
interleaved.append( ( ddict[s.order], s.totals ) )
This interleaved
可以将对象提供给您的模板进行渲染。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)