ホームページ >バックエンド開発 >Python チュートリアル >Django テンプレートのキーとしてループ変数を使用してディクショナリ値にアクセスするにはどうすればよいですか?
Django テンプレートでは、構文 {{ mydict.key1 }} または {{ mydict.key2 } を使用すると、辞書値に簡単にアクセスできます。 }。ただし、ループ変数を辞書キーとして扱う場合、従来のアプローチは失敗します。
次のシナリオを考えてみましょう。
mydict = {"key1":"value1", "key2":"value2"} {% for item in list %} {{ mydict.item.NAME }} # This fails {% endfor %}
上記のコードでは、item.NAME はループ変数として機能します。属性 NAME。ただし、mydict.item.NAME では望ましい結果が得られません。
この課題を克服するには、カスタム テンプレート フィルターを作成できます。
from django.template.defaulttags import register ... @register.filter def get_item(dictionary, key): return dictionary.get(key)
get_item フィルターは .get を利用します。 () メソッドを使用して、指定されたキーに関連付けられた値を取得します。これにより、キーが存在しない場合、KeyError が発生する代わりに None が返されるようになります。
フィルターを使用するには、テンプレート コードを次のように変更します。
{{ mydict|get_item:item.NAME }}
以上がDjango テンプレートのキーとしてループ変数を使用してディクショナリ値にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。