我将以下字典传递给渲染函数,其中source是一个字符串列表,title是一个字符串,可能等于源中的一个字符串:
{'title':title, 'sources':sources})
在HTML模板中,我想在以下几行中完成一些事情:
{% for source in sources %}
<tr>
<td>{{ source }}</td>
<td>
{% if title == {{ source }} %}
Just now!
{% endif %}
</td>
</tr>
{% endfor %}
但是,以下文本块会导致错误:
TemplateSyntaxError at /admin/start/
Could not parse the remainder: '{{' from '{{'
... {% if title == {{ source }} %}
以红色突出显示。
答案 0 :(得分:47)
您不应该在{{ }}
或if
语句中使用双括号ifequal
语法,您可以像在普通python中一样访问变量:
{% if title == source %}
...
{% endif %}
答案 1 :(得分:9)
{% for source in sources %}
<tr>
<td>{{ source }}</td>
<td>
{% ifequal title source %}
Just now!
{% endifequal %}
</td>
</tr>
{% endfor %}
or
{% for source in sources %}
<tr>
<td>{{ source }}</td>
<td>
{% if title == source %}
Just now!
{% endif %}
</td>
</tr>
{% endfor %}
答案 2 :(得分:2)
很抱歉在旧帖子中发表评论,但是如果您想使用 else if 声明,这将对您有所帮助
{% if title == source %}
Do This
{% elif title == value %}
Do This
{% else %}
Do This
{% endif %}
有关更多信息,请参见Django Documentation
答案 3 :(得分:0)
你尝试这个。
我已经在 django模板中尝试过了。
它会正常工作。只需从 {{source}} 中移除大括号对 {{和}} 。
我还添加了&lt; table&gt; 标记和 。
修改后,您的代码将如下所示。
{% for source in sources %}
<table>
<tr>
<td>{{ source }}</td>
<td>
{% if title == source %}
Just now!
{% endif %}
</td>
</tr>
</table>
{% endfor %}
我的字典如下所示,
{'title':"Rishikesh", 'sources':["Hemkesh", "Malinikesh", "Rishikesh", "Sandeep", "Darshan", "Veeru", "Shwetabh"]}
一旦我的模板被渲染,和 OUTPUT 就像下面所示。
Hemkesh
Malinikesh
Rishikesh Just now!
Sandeep
Darshan
Veeru
Shwetabh