【问题标题】:Issue with simple if elif statement within a for loop in Django/Webapp2Django / Webapp2中for循环中的简单if elif语句问题
【发布时间】:2014-05-06 05:59:20
【问题描述】:

我正在尝试在 for 循环中使用相对简单的 if elif 语句,但它似乎会引发错误。这是我正在使用的语法

{% for ruleset in rulesets %}
<!-- some simple html / template tags come here -->
{% for rule in rules %}
  {% if rule.0 = ruleset.0 and rule.2 = 1 %}
    {{ rule.1 }}: {{ rule.3 }} out of {{ rule.4 }} points above {{ rule.5 }} sigma
  {% elif rule.0 = ruleset.0 and rule.2 = 2 %}
    {{ rule.1 }}: {{ rule.3 }} out of {{ rule.4 }} points below {{ rule.5 }} sigma
  {% endif %}
{% endfor %}
{% endfor %}

还有一些我想要合并的规则,所以我不能只使用 else 标记。

我得到的错误是: TemplateSyntaxError:无效的块标签:'elif',预期的'else'或'endif'

关于如何解决这个问题的任何建议?我在某些时候也使用了嵌套的 if 子句,但遇到了类似的错误。

【问题讨论】:

  • elif 受支持。但请注意,您的= 条件应该是==。或者你可以使用ifequal 模板标签来代替

标签: django django-templates webapp2


【解决方案1】:

elif 从 django 1.4 开始支持

可能是您使用的是旧版本的 django。

请参阅我关于 = 符号的评论,该符号应该是 == 以按预期评估为 True 或 False。或者您可以使用ifequal 模板标签。

【讨论】:

  • 这是有道理的。我实际上使用的是 WebApp2,但总是使用 Django 文档,因为它更好。原来WebApp2似乎不支持elif。
【解决方案2】:

elif 语句在 1.4 版 (Django 1.4 release notes) 中添加到 Django。

如果您使用的是较旧的 Django 版本,则必须升级到较新的版本或使用嵌套的 if/else 语句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 2020-08-30
    • 1970-01-01
    相关资源
    最近更新 更多