伝統的に、Django テンプレートでは、{{ mydict.key1 }} 構文を使用してディクショナリ値にアクセスできます。ただし、キーが動的ループ変数である場合には課題が発生します。 {{ mydict.item.NAME }} などのループ変数の属性には、テンプレート内で直接アクセスすることはできません。
この問題に対処するために、Django は以下を提供します。カスタム テンプレート フィルターを定義するメカニズム。これらのフィルターを使用すると、テンプレート構文を拡張する特殊な関数を作成できます。この場合、変数キーに基づいて辞書から値を取得する get_item という名前のフィルターを作成します。
from django.template.defaulttags import register @register.filter def get_item(dictionary, key): return dictionary.get(key)
.get() を使用することで、キーが欠落している可能性を適切に処理します。
カスタム get_item フィルターをテンプレートで使用するにはDjango テンプレートには、次の構文が含まれます:
{{ mydict|get_item:item.NAME }}
この構文により、動的ループ変数 item.NAME に基づいて mydict の値が確実に取得されます。結果は実質的に mydict[item.NAME] になります。
カスタム Django テンプレート フィルターを作成することで、変数キーを使用して辞書値にアクセスする柔軟性が解放されます。これにより、Django テンプレート内のデータ構造を操作するときに、より動的で強力なテンプレート ロジックが有効になります。
以上がDjango テンプレートの変数キーを使用してディクショナリ値にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。