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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-24 05:37:17474ブラウズ

How to Access Dictionary Values with Variable Keys in Django Templates?

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

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