繁体   English   中英

检查 Django 模板中的列表变量项中是否存在某些内容

[英]Checking if something exists in items of list variable in Django template

我有一个传递给 Django 模板的部分列表。 这些部分有不同的类型。 我想在我的模板中说“如果有这种类型的部分,则显示这一行”,但是有一个问题。 我基本上想做的是这个。

{% if s.name == "Social" for s in sections %}
    Hello Social!
{% endif %}

但这当然行不通。 知道如何基本上在一行中循环遍历列表中的项目并执行 if 语句吗?

附加信息:我可能有多个“社交”部分。 我在模板中尝试做的是说“如果有任何社交部分,则显示此 div。如果没有,请不要显示 div。” 但我不希望 div 重复,这就是上面的代码会发生的情况。

理想情况下,您要做的是创建一个模板获取的列表:

l = [s.name for s in sections]

在模板中,使用:

{% if 'Social' in l %}

您正试图在模板中加入比预期更多的逻辑。 模板应该使用尽可能少的逻辑,而逻辑应该在填充模板的代码中。

您不能在模板中使用列表推导:

{% for s in sections %}
  {% if s.name == 'Social' %}
    Hello Social!
  {% endif %} {# closing if body #}
{% endfor %} {# closing for body #}
{% if sections.0.name == "Social" %}
    Hello Social!
{% endif %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM