是否可以在子句的if语句中使用父级for for循环中的变量?
这是一个例子:
{% for ruleset in rulesets %}
<div>{{ ruleset.0 }}</div>
<ul>
{% for rule in rules %}
{% if rule.0 = {{ ruleset.0 }} %}
<li>{{ rule.1 }}</li>
{% else %}
<!-- Nothing -->
{% endif %}
{% endfor %}
</ul>
{% endfor %}
我得到的错误是: 提升TemplateSyntaxError(“无法解析余数:'%s'来自'%s'”%(令牌[upto:],令牌)) TemplateSyntaxError:无法解析余数:'{{'来自'{{'
我认为这意味着它无法理解if语句中的{{ruleset.0}}。有关如何解决此问题的任何建议吗?
答案 0 :(得分:2)
您的语法不正确:您无法在{{ ... }}
语句中使用{% ... %}
。
这应该有效,因为内部for循环应该继承外部for循环的范围:
{% for ruleset in rulesets %}
<div>{{ ruleset.0 }}</div>
<ul>
{% for rule in rules %}
# = is an assignment operator (which doesn't work in templates),
# == is the equality operator, which you want to use.
# alternatively you can use {% ifequal rule.0 ruleset.0 %}{% else %}{% endifequal %}
{% if rule.0 == ruleset.0 %}
<li>{{ rule.1 }}</li>
{% else %}
<!-- Nothing -->
{% endif %}
{% endfor %}
</ul>
{% endfor %}