【问题标题】:Django: string in list (templates)Django:列表中的字符串(模板)
【发布时间】:2016-01-29 12:46:20
【问题描述】:

如何查看变量是否在字符串列表中?我收到该代码错误:

{% with xxx=request.resolver_match.url_name %}
  {% if xxx in ["home_en", "page_en"] %}
  ...
  {% else %}
  ...
  {% endif %}
{% endwith %}

【问题讨论】:

  • 错误提示:无法解析剩余部分:'["home_en",' from '["home_en",'

标签: django django-templates


【解决方案1】:

您不能在 django 模板中动态定义列表。 您应该通过视图的上下文或使用上下文处理器将此列表作为变量传递给模板。

作为一个肮脏的解决方案,你可以执行这样的事情 {% if xxx in 'home_enpage_en' %}

但请注意,“home”、“enpage”、“_en”等值实际上会通过此检查以及“home_en”和“page_en”。

【讨论】:

    【解决方案2】:

    谢谢。我想我更喜欢

    {% if xxx == "home_en" or xxx == "page_en" %}
    

    效果很好,但看起来不像列表那么好。

    【讨论】:

      【解决方案3】:

      你可以这样做

      {% with request.resolver_match.url_name as xxx %}
        {% with "home_en page_en" as mylist %}
        {% if xxx in mylist.split %}
        ...
        {% else %}
        ...
        {% endif %}
        {% endwith %}
      {% endwith %}
      

      【讨论】:

        猜你喜欢
        • 2013-04-08
        • 2013-06-22
        • 2011-04-29
        • 1970-01-01
        • 1970-01-01
        • 2013-07-16
        • 2016-06-09
        • 1970-01-01
        • 2012-06-06
        相关资源
        最近更新 更多