2011-10-10 84 views
0

我的視圖中有一個變量,即該模型上的Model.objects.all()調用的輸出。在我看來,我將它傳遞給我的模板,我試圖在模板中迭代它。我可以簡單地通過這行代碼訪問它的第一個元素。 'code'是我的django模型中的一個字段的名稱。這一行確實打印了第一個元素的「代碼」屬性。爲什麼不能遍歷Django模板中的這個列表

{{ var_name.0.code }} 

但是,當我嘗試遍歷循環模板中的var_name時,什麼也沒有顯示出來。我嘗試下面的代碼:

{% for single_var in var_name %} 
    {{ single_var.code }} 
{% endfor %} 

這其實不是我想要的for循環做,但得到這個工作讓我做什麼,我需要在模板中。值得注意的是,現在這個列表中只有一個元素。

這是爲了一個工作項目,所以這就是爲什麼我將變量名改爲一般的東西。

+1

你能說明你是如何定義列表並將它傳遞給模板的嗎? –

+0

是否打印'var_name'打印對象列表?同樣,每次迭代打印「single_var」是否打印對象引用? –

+0

var_name是通過調用ModelName.objects.all()來聲明的。打印出var_name顯示[<模型名稱:'模型描述。>>]。我在視圖和模板中打印了var_name,並在瀏覽器中和控制檯中的runserver輸出中顯示了相同的內容。 –

回答

0

我發現將single_var的名稱更改爲沒有下劃線的東西似乎可以修復它。這不會使很多意義,我因爲Django template language documentation規定如下:

Variable names consist of any combination of alphanumeric characters and the underscore ("_"). 

有誰知道爲什麼這似乎來解決這個問題?