我在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>
“books”变量是一个列表,从views.py文件传入 . 我可以在循环外部访问这些变量,但如果我尝试在循环中包含一个单独的变量(“selected_book”),我就会遇到问题 .
上面的代码什么也没做,如果我尝试将变量包装在双括号中
{{ selected_book }}
我收到以下错误:
TemplateSyntaxError
Could not parse the remainder: '{{' from '{{'
变量被传递到模板中,因为我可以将它打印到页面 . 我尝试在for循环中使用它时只会出错 .
如果我写“{%if book.id == 2%}”,那就行了 .
1 回答
确保
selected_book
是整数而不是字符串,否则代码就可以了