我想在模板中显示小计的总和。
{% for quote in quotes %}
{% for product in quote.purchase_quote_products_set.all %}
{{product.subtotal}} |
{% endfor %}
<span id="total"></span>
{% endfor %}
我的结果。
15 | 120 | 2000 |
有没有办法在span#total
<span id="total">{{ sum_of_subtotal }}</span>
答案 0 :(得分:5)
最好在Django视图而不是模板中执行此类算法。对于例如你可以在视图中找到总和:
from django.db.models import Sum
total_price = Quotes.objects.all().annotate(total=Sum('purchase_quote_products__subtotal'))
然后模板可以使用:
<span id="total">{{ quote.total }}</span>
答案 1 :(得分:1)
如果你试图在模板上进行计算,那么在Django Template中有一些叫做过滤器的东西,用于在变量渲染到UI之前改变它们的值。
自定义过滤器只是带有一个或两个参数的Python函数:
过滤功能应该总是返回一些东西。他们不应该提出例外。他们应该默默地失败。如果出现错误,他们应该返回原始输入或空字符串 - 无论哪个更有意义。
以下是过滤器定义示例:
def cut(value, arg):
"""Removes all values of arg from the given string"""
return value.replace(arg, '')
以下是如何使用该过滤器的示例:
{{ somevariable|cut:"0" }}
请阅读以下文档以获取更多信息custom_template