2010-06-16 25 views
8

這是一個相當基本的問題(我是Django的新手),但我在我的模板中使用我的視圖中設置的變量時遇到了問題。如果我在視圖中初始化字符串或列表(即h =「hello」),然後嘗試在模板內調用它:
{{ h }}
既沒有輸出也沒有錯誤。同樣,如果我嘗試使用我的模板中的變量不存在:
在模板中使用Django視圖變量

{{ asdfdsadf }} 

再有不報告的錯誤。這是正常的嗎?我怎樣才能在我的模板中使用我的變量。謝謝!

回答

22

爲了能夠訪問模板中的變量,它需要位於用於呈現該模板的上下文中。我的猜測是,當你渲染它時,你沒有將上下文字典傳遞給模板。

http://docs.djangoproject.com/en/dev/topics/http/shortcuts/#render-to-response

的「字典」中引用有一個包含所有你想在上下文中可用的變量的字典。例如:

return render_to_response('your_template.html', {'h': h}) 

至於「無錯」錯誤去...這是一個無效模板變量的默認設置。如果您願意,可以在項目設置中更改它。

http://docs.djangoproject.com/en/dev/ref/settings/#template-string-if-invalid

3

是的!這個是正常的。模板中的這些錯誤無聲無息地出現,這在Django中是預料之中的。

渲染正確模板使用render_to_response('your_template.html', {'h':h})(也有討厭的快捷render_to_response('your_template.html', locals())如果你的語境詞典是非常大的)

這裏是一些解釋舉例:http://www.djangobook.com/en/beta/chapter04/(節「如何無效變量處理」)