Django テンプレート: 変数キーを使用した辞書値へのアクセス
Django テンプレート内の辞書値へのアクセスは、ドット演算子 (つまり、{{) を使用すると簡単です。 mydict.key }}。ただし、キー自体が変数である場合、特にキーがループ変数のプロパティである場合に問題が発生します。
問題:
次の状況を考えてみましょう:
mydict = {"key1":"value1", "key2":"value2"} {% for item in list %} {{ mydict.item.NAME }} # Attempt to look up mydict[item.NAME] {% endfor %}
ここでは、mydict.item.NAME 構文を示します。
解決策:
この問題を解決するには、カスタム テンプレート フィルターを作成できます:
from django.template.defaulttags import register @register.filter def get_item(dictionary, key): return dictionary.get(key)
get()キーが存在しない場合を処理するために、dictionary[key] の代わりにメソッドが使用されます (キーが発生する代わりに None を返します) KeyError).
使用法:
フィルターが登録されると、次のように変数キーを使用して辞書値にアクセスできます:
{{ mydict|get_item:item.NAME }}
以上がDjango テンプレートの変数キーを使用してディクショナリ値にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。