如何使用“in”语句来检查列表中的项目与否。如果我使用:
{% for picture in pictures %}
{% if picture in article.pictures %}
<input type="checkbox" checked="true" name="picture" value="{{ picture.key }}" />
{% else %}
<input type="checkbox" name="picture" value="{{ picture.key }}" />
{% endif %}
<img src='/img?img_id={{ picture.key }}'></img> <br />
{% endfor %}
这是失败的:
TemplateSyntaxError: 'if' statement improperly formatted
在线
{% if picture in article.pictures %}
帮助?
答案 0 :(得分:2)
默认情况下,Django模板不支持完整的条件表达式。您可以使用if检查一个值是否为“true”,或者您可以检查两个值是否等于ifequal
等。
也许您可以在渲染模板之前在视图中装饰picture
。
for picture in pictures:
picture.is_in_article = (picture in article.pictures)
然后在模板中,您可以对该新属性的值进行操作。
{% for picture in pictures %}
{% if picture.is_in_article %}
<input type="checkbox" checked="true" name="picture" value="{{ picture.key }}" />
{% else %}
<input type="checkbox" name="picture" value="{{ picture.key }}" />
{% endif %}
<img src='/img?img_id={{ picture.key }}'></img> <br />
{% endfor %}
答案 1 :(得分:1)
我没有使用GAE,但可以在补丁here中找到自定义“ifin”Django标记的代码。正如我的评论中所提到的,看起来这个功能可以在Django 1.2中实现