這是一個相當基本的問題(我是Django的新手),但我在我的模板中使用我的視圖中設置的變量時遇到了問題。如果我在視圖中初始化字符串或列表(即h =「hello」),然後嘗試在模板內調用它:
{{ h }}
既沒有輸出也沒有錯誤。同樣,如果我嘗試使用我的模板中的變量不存在:
在模板中使用Django視圖變量
{{ asdfdsadf }}
再有不報告的錯誤。這是正常的嗎?我怎樣才能在我的模板中使用我的變量。謝謝!
這是一個相當基本的問題(我是Django的新手),但我在我的模板中使用我的視圖中設置的變量時遇到了問題。如果我在視圖中初始化字符串或列表(即h =「hello」),然後嘗試在模板內調用它:
{{ h }}
既沒有輸出也沒有錯誤。同樣,如果我嘗試使用我的模板中的變量不存在:
在模板中使用Django視圖變量
{{ asdfdsadf }}
再有不報告的錯誤。這是正常的嗎?我怎樣才能在我的模板中使用我的變量。謝謝!
爲了能夠訪問模板中的變量,它需要位於用於呈現該模板的上下文中。我的猜測是,當你渲染它時,你沒有將上下文字典傳遞給模板。
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
是的!這個是正常的。模板中的這些錯誤無聲無息地出現,這在Django中是預料之中的。
渲染正確模板使用render_to_response('your_template.html', {'h':h})
(也有討厭的快捷render_to_response('your_template.html', locals())
如果你的語境詞典是非常大的)
這裏是一些解釋舉例:http://www.djangobook.com/en/beta/chapter04/(節「如何無效變量處理」)
您還可以使用
return render(request, 'your_template.html', {'h':h, 'var1':var1})
參考最新的手冊上https://docs.djangoproject.com/es/1.9/topics/http/shortcuts/