2014-11-08 91 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是一個整數不是字符串,否則代碼是罰款