ホームページ >バックエンド開発 >Python チュートリアル >Django テンプレートのキーとしてループ変数を使用してディクショナリ値にアクセスするにはどうすればよいですか?

Django テンプレートのキーとしてループ変数を使用してディクショナリ値にアクセスするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-02 21:26:12419ブラウズ

How to Access Dictionary Values Using Loop Variables as Keys in Django Templates?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。