2014-11-08 95 views
0

我在Django模板中有一个for循环,它打印出书本列表,该列表很好地工作。问题是当我尝试的选择,以纪念在列表中的项目之一,基于来自views.py文件中传递的值:在Django模板循环中包含变量

<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> 

“图书”变量是一个列表,在通过views.py文件。我可以在循环之外访问这些变量,但是如果我尝试在循环内部包含一个单独的变量(“selected_book”),我有问题。

上面的代码做什么,如果我尝试住变量在双括号

{{ selected_book }}

我收到以下错误:

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

变量被传递到模板,因为我可以将它打印到页面上。当我尝试在for循环中使用它时,我只会遇到一个错误。

如果我写“{%if book.id == 2%}”,那很好。

+0

你需要改变' “{{book.id}}”''到{{book.id}}' – Kasramvd 2014-11-08 15:47:17

+0

化妆确定''book.id''确实存在。是“书籍”的对象列表? – doniyor 2014-11-08 15:54:27

+0

书ID不是问题。如果我写“{%if book.id == 2%}”,那很好。 – Jon 2014-11-08 16:03:50

回答

-1

确保selected_book是一个整数不是字符串,否则代码是罚款