在Django 模板中使用動態鍵存取字典值
Django 模板提供了一種使用字典的便捷方法,使開發人員能夠使用以下方式存取值點符號(例如,{{ mydict.key1}})。但是,當鍵是循環變數時,例如提供的範例中的 item.NAME,直接存取字典值就會出現問題。
解決方案:利用自訂模板過濾器
為了克服這一挑戰,Django 提供了定義自訂模板過濾器的功能,以擴展模板系統的功能。這是一個過濾器,可讓您使用變數鍵來尋找字典值:
# import the necessary modules from django.template.defaulttags import register # define the custom template filter @register.filter def get_item(dictionary, key): return dictionary.get(key)
get_item 過濾器使用 get 方法從給定字典中檢索與提供的鍵對應的值。如果在字典中找不到該鍵,get_item 將傳回 None 而不是引發 KeyError。
模板中的用法
要使用自訂過濾器,只需透過管道傳遞字典及其變數鍵,如下所示:
{{ mydict|get_item:item.NAME }}
在此範例中,mydict 是包含鍵值對,item.NAME 是變數鍵。 get_item 過濾器將使用鍵 item.NAME 在 mydict 中尋找值並傳回對應的值。
以上是如何在 Django 模板中使用動態鍵存取字典值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!