我想要得到以下工作。用於循環變量作爲Django模板中的字典鍵
計數循環需要遍歷所有值,並且可能沒有與每個計數相關聯的用戶,但需要在每個循環中使用計數值i
傳遞給JavaScript。
蟒蛇部分:
users = {}
users[1]={}
users[1][id]=...
users[1][email]=...
...
count=[1,2,3,4,5,6,7,8,9,10]
Django的模板部分:
{% for i in count %}
do some stuff with the value i using {{i}} which always returns the value, i.e. 1
email:{% if users.i.email %}'{{users.i.email}}'{% else %}null{% endif%}
{% endfor %}
這不返回任何電子郵件。 當我替補人數1
爲i
在{% if user.i.email %}
電子郵件返回用戶的電子郵件地址。 我在JavaScript中使用數據,因此如果它不存在,它需要隱式爲空。 我似乎無法讓Django將i
變量識別爲變量而不是值i。
使用[]
不起作用,因爲它拋出一個無效的語法錯誤
email:{% if users.[i].email %}'{{users.[i].email}}'{% else %}null{% endif%}
我一直在使用 「with
」 語句
{% for i in count %}{% with current_user=users.i %}...
,然後使用current_user.email
嘗試,但不會返回任何
也試圖
{% for i in count %}{% with j=i.value %}...
以防萬一它會工作,然後試圖用j
,但同樣的結果。
我曾想過建立一個內部for循環遍歷用戶對象和檢查,如果我是等於鍵/值,但似乎昂貴,不是很可擴展性。
任何想法我怎麼能強迫Django的查看i
作爲一個變量和使用它的值作爲索引,或任何其他方式解決這個問題?
感謝
Jayd
* 編輯:
我嘗試了額外的循環,通過ABHI的建議,以下。
{% for i in count %}
{% for key, current_user in users.items %}
do some stuff with the value i using {{i}} which always returns the value, i.e. 1
email:{% if i == key and current_user.email %}'{{current_user.email}}'{% else %}null{% endif%}
{% endfor %}
{% endfor %}
這種類型的作品,但現在它會重複do some stuff with the value i
爲用戶的每一個值。如果我把一個if:
{% for i in count %}
{% for key, current_user in users.items %}
{% if i == key %}
do some stuff with the value i using {{i}} which always returns the value, i.e. 1
email:{% if i == key and current_user.email %}'{{current_user.email}}'{% else %}null{% endif%}
{% endif%}
{% endfor %}
{% endfor %}
當計數沒有一個特定的用戶時,忽略循環。
我可以解決此看到的唯一方法是有那個我想用current_user
每個地方的用戶環路。
{% for i in count %}
do some stuff with the value i using {{i}} which always returns the value, i.e. 1
email:{% for key, current_user in users.items %}{% if i == key and current_user.email %}'{{current_user.email}}'{% else %}null{% endif%}{% endfor %}
{% endfor %}
而這看起來非常昂貴。 任何想法?
我在想,也許的寫一個過濾器,使用i
作爲關鍵用戶返回值:
{% with current_user=users|getuser:i %}
但我不知道這是否會工作或我會得到同樣的錯誤,在這裏i
作爲值「i」而不是變量名傳遞。
我會試一試這麼久。
* 編輯
這沒有奏效。 過濾器使用{{}}
返回對象,但它不在{% %}
內工作。
感謝輸入
你爲什麼要使用字典外集合,而不是一個列表? –
爲什麼在整個問題中使用** bold **格式,而不是在編輯框右側顯示明確的格式提示? –
格式化的道歉,我沒有看到我發佈帖子時的提示。 – Jayd