模板条件判断中能否执行算术运算?求解示例代码语法问题
Django模板中判断index+1是否在列表的可行方案
你完全不用怕add过滤器会永久修改index的取值——Django模板里的过滤器都是无副作用的,只会返回计算后的新值,根本不会改动原始变量的数值。
直接把无效的index+1语法换成index|add:1过滤器写法就行,修改后的代码如下:
{% if index in widget.row_starts %} <div class="row"> {% elif index|add:1 in widget.row_starts %} </div> {% endif %}
这里的index|add:1只是临时算出index加1的结果,用来和widget.row_starts列表做包含判断,判断完成后index的原始值不会有任何变化,完全可以放心使用。
如果觉得重复写index|add:1不够清爽,也可以用with标签先把计算结果存为临时变量,代码可读性会更好:
{% with next_index=index|add:1 %} {% if index in widget.row_starts %} <div class="row"> {% elif next_index in widget.row_starts %} </div> {% endif %} {% endwith %}
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

