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

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

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-09 07:07:06610ブラウズ

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

Django テンプレートの動的キーを使用したディクショナリ値へのアクセス

Django テンプレートは、ディクショナリを操作する便利な方法を提供し、開発者が次を使用して値にアクセスできるようにします。ドット表記 (例: {{ mydict.key1}})。ただし、キーがループ変数 (例の item.NAME など) の場合、ディクショナリ値に直接アクセスすると問題が発生します。

解決策: カスタム テンプレート フィルターの利用

この課題を克服するために、Django はテンプレート システムの機能を拡張するカスタム テンプレート フィルターを定義する機能を提供します。以下は、変数キーを使用して辞書値を検索できるフィルタです。

# import the necessary modules
from django.template.defaulttags import register

# define the custom template filter
@register.filter
def get_item(dictionary, key):
    return dictionary.get(key)

get_item フィルタは、get メソッドを使用して、指定された辞書から指定されたキーに対応する値を取得します。キーがディクショナリ内に見つからない場合、get_item は KeyError を発生させる代わりに None を返します。

テンプレートでの使用

カスタム フィルターを使用するには、単純にパイプします。以下に示すように、辞書とその変数キー:

{{ mydict|get_item:item.NAME }}

この例では、mydict は、キーと値のペアであり、item.NAME は変数キーです。 get_item フィルターは、キー item.NAME を使用して mydict 内の値を検索し、対応する値を返します。

以上がDjango テンプレートの動的キーを使用してディクショナリ値にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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