在Django模板循环中包含变量

时间:2014-11-08 15:39:16

标签: python django django-templates django-views

我在Django模板中有一个for循环,它打印出一本书的列表,效果很好。当我尝试根据从views.py文件传入的值将列表中的一个项目标记为已选择时出现问题:

<select name="b">
    <option value="1">Book</option>
    {% for book in books %}
        <option {% if book.id == selected_book %} selected {% endif %} value="{{ book.id }}">{{ book.t }}</option>
    {% endfor %}
</select>

&#34;书籍&#34; variable是一个列表,从views.py文件传入。我可以在循环外部访问这些变量,但如果我尝试在循环中包含一个单独的变量(&#34; selected_book&#34;),我就会遇到问题。

上面的代码什么也没做,如果我尝试用双括号包装变量

{{ selected_book }}

我收到以下错误:

TemplateSyntaxError 
Could not parse the remainder: '{{' from '{{'

该变量正在传递到模板中,因为我可以将其打印到页面中。当我尝试在for循环中使用它时,我只会收到错误。

如果我写&#34; {%if book.id == 2%}&#34;这很好。

1 个答案:

答案 0 :(得分:-1)

确保selected_book是整数而不是字符串,否则代码很好