1. ホーム
  2. パイソン

[解決済み] Djangoテンプレート 変数で辞書の値を検索する方法

2022-04-02 20:14:42

質問

mydict = {"key1":"value1", "key2":"value2"}

Django テンプレートで辞書の値を検索する通常の方法は次のとおりです。 {{ mydict.key1 }} , {{ mydict.key2 }} . キーがループ変数である場合はどうでしょうか?

{% for item in list %} # where item has an attribute NAME
  {{ mydict.item.NAME }} # I want 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] を発生させます。 KeyError であれば、)

の使い方を説明します。

{{ mydict|get_item:item.NAME }}