我有兩個4層對象傳遞給django模板。我目前正在循環遍歷每一層,並且如果它存在的話,就會降級。我最終得到了key,key2和key3,它們在循環時表示對象中的當前位置。我想引用另一個使用這些變量的層次相同的對象,但遇到了一些麻煩。在Django模板標籤中使用變量作爲對象鍵值
如果我試圖做到這一點的蟒蛇,它看起來像這樣
my_object[ key ][ key2 ][ key3 ]
但在Django模板,它似乎並沒有我可以用括號,如果我所使用的時段它會認爲關鍵是關鍵的名稱,而不是把它看作是一個變量。
如果您需要我的代碼的更多詳細信息,請告訴我。謝謝!
編輯:這裏是我的對象和我的模板代碼的例子。
variable1 = {
"content": {
"pages": {
"view":True,
"add":True,
"edit":True,
"delete":True
},
"articles": {
"view":True,
"add":True,
"edit":True,
"delete":True
},
"slideshow": {
"view":True,
"edit":True
},
},
"people": {
"view":True,
"add":True,
"edit":True,
"delete":True,
"sort-staff":True,
"sort-riders":True
}
}
變量2與變量1相同,但具有相同的鍵,但某些鍵缺失。
這是我的模板看起來像排序通過這個對象。
{% for key, value in variable1.items %}
<strong>{{ key|title }}</strong>
{% for key2, value2 in value.items %}
{% if value2.items %}
<p class="indent">{{ key2|title }}
{% for key3, value3 in value2.items %}
<p class="indent"><input type="checkbox" name="form_permission_{{ key }}_{{ key2 }}_{{ key3 }}" {% if variable2[key][key2][key3] %}checked="checked"{% endif %}> {{ key3|title }}</p>
{% endfor %}
</p>
{% else %}
<p class="indent"><input type="checkbox" name="form_permission_{{ key }}_{{ key2 }}"> {{ key2|title }}</p>
{% endif %}
{% endfor %}
{% endfor %}
如果你看最縮進的行,你會看到{% if variable2[key][key2][key3] %}checked="checked"{% endif %}
。你應該能夠理解我試圖用該代碼完成的事情。
你可以發佈你的對象的樣子和你的模板代碼嗎? – 2010-08-19 01:12:55
增加了一些代碼,謝謝! – 2010-08-19 01:33:39