在Django 範本中,使用語法{{ mydict.key1 }} 或{{ mydict.key2 } 存取字典值非常簡單}。然而,當循環變數作為字典鍵處理時,傳統方法會失敗。
考慮以下場景:
mydict = {"key1":"value1", "key2":"value2"} {% for item in list %} {{ mydict.item.NAME }} # This fails {% endfor %}
在上面的程式碼中,item.NAME 作為循環變數屬性名稱。但是,mydict.item.NAME 無法提供所需的結果。
為了克服這個挑戰,可以建立自訂模板過濾器:
from django.template.defaulttags import register ... @register.filter def get_item(dictionary, key): return dictionary.get(key)
get_item 過濾器利用 .get () 方法檢索與指定鍵關聯的值。這確保如果鍵不存在,它會傳回 None 而不是引發 KeyError。
要使用篩選器,請修改範本程式碼如下:
{{ mydict|get_item:item.NAME }}
以上是如何在 Django 模板中使用循環變數作為鍵來存取字典值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!