我想在Django模板中定义一个变量,然后将其值递增1。
{% with variable=0 %} {% if some_condition == True %} {{ variable++ }} {% endif %} {% endwith %}
为了定义变量,我已经发现我可以使用with。我如何才能增加它的价值?
with
qpgpyjmq1#
请不要。业务逻辑不属于模板。Django的模板语言被刻意限制,使得这样的事情也许不是不可能,但至少非常不方便。因此,模板语言的目的是使更新变量变得非常困难,因为改变值的变量是不可预测的,因此容易出错。这属于视图:视图应该进行正确的查询,并以可访问的方式将数据传递给模板。最后,Django的模板语言很慢,它意味着大量的函数调用和上下文解析,所以在模板中这样做也会有效地减慢这个过程。我如何才能增加它的价值?这并不容易,例如可以制作一个自定义模板标签来做到这一点,但这将是一个非常糟糕的主意。模板语言没有简单的模板标记来做这件事的原因是,这将是糟糕的代码设计。
1条答案
按热度按时间qpgpyjmq1#
请不要。业务逻辑不属于模板。Django的模板语言被刻意限制,使得这样的事情也许不是不可能,但至少非常不方便。
因此,模板语言的目的是使更新变量变得非常困难,因为改变值的变量是不可预测的,因此容易出错。
这属于视图:视图应该进行正确的查询,并以可访问的方式将数据传递给模板。
最后,Django的模板语言很慢,它意味着大量的函数调用和上下文解析,所以在模板中这样做也会有效地减慢这个过程。
我如何才能增加它的价值?
这并不容易,例如可以制作一个自定义模板标签来做到这一点,但这将是一个非常糟糕的主意。模板语言没有简单的模板标记来做这件事的原因是,这将是糟糕的代码设计。