Django テンプレートでキーによる辞書へのアクセス
ビューからテンプレートに辞書を渡しています。しかし、特定のキー、例えばjson.items["key1":"value1":"value2"}`から直接ビューにアクセスするという優雅な解決策は見あたりません。if/then文を使うこともできますが、むしろ直接アクセスしたいのですが、何か方法はありますか?
以下は、htmlテンプレート内のループコードです:
{% for key, value in json.items %}
<li>{{key}} - {{value}}</li>
{% endfor %}
53
4
Django テンプレート言語では、次のように辞書のキーを調べることをサポートしています:
変数とルックアップ]1については、テンプレートのドキュメントを参照してください。
テンプレート言語では、
json[key]
(key
は変数)を表示する方法は提供されていません。このStack Overflowの質問の回答で提案されているように、これを行うためのテンプレート・フィルタを書くことができます。例えば、以下のような辞書を送信する場合
dict = {'name':'myname','number':'mynumber'}
views :
return render(request, self.template_name, {'dict': dict})
.htmlテンプレートで値をレンダリングする場合:
<p>{{ dict.name }}</p>
)と表示されます。
この問題を解決するために、次のようなことを試してみてはいかがでしょうか:
@Alasdairが示唆するように、テンプレートフィルターを使用できます。
templatetags
ディレクトリに、次のファイルdict_key.py
を作成します。次に、HTMLで次のように記述できます。