Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 循环模板中行的Django和_Python_Django - Fatal编程技术网

Python 循环模板中行的Django和

Python 循环模板中行的Django和,python,django,Python,Django,我想在我的模板中显示小计的总和 {% for quote in quotes %} {% for product in quote.purchase_quote_products_set.all %} {{product.subtotal}} | {% endfor %} <span id="total"></span> {% endfor %} 有没有办法显示span#total <span id="total">

我想在我的模板中显示小计的总和

{% for quote in quotes %}
    {% for product in quote.purchase_quote_products_set.all %}
        {{product.subtotal}} | 
    {% endfor %}
    <span id="total"></span>
{% endfor %}
有没有办法显示
span#total

<span id="total">{{ sum_of_subtotal }}</span>
{{sum\u of_subtotal}

最好在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>
{{quote.total}

如果您试图在模板上进行计算,那么在Django模板中有一个名为filter的东西,用于在变量呈现到UI之前更改变量的值

自定义筛选器只是采用一个或两个参数的Python函数:

  • 变量(输入)的值–不一定是字符串
  • 参数的值–可以有默认值,也可以完全忽略
  • 例如,在过滤器{var | foo:“bar”}中,过滤器foo将被传递变量var和参数“bar”
过滤器函数应该总是返回一些东西。他们不应该提出例外。他们应该默默地失败。如果出现错误,它们应该返回原始输入或空字符串,以更有意义的为准

下面是一个过滤器定义示例:

def cut(value, arg):
    """Removes all values of arg from the given string"""
    return value.replace(arg, '')
下面是如何使用该过滤器的示例:

{{ somevariable|cut:"0" }}

有关更多信息,请阅读以下文档,

使用变量声明模板中的
set
。为总计设置过滤器<代码>http://stackoverflow.com/questions/5275639/sum-in-html-template-using-template-tag
{{ somevariable|cut:"0" }}