DjangoのTemplateにて辞書の内容を一覧表示する
DjangoのTemplateでは、{% for a in list %}...{% endfor %}を使うことで、リストの内容を順番に処理していくことができます。
それと同じように、ディクショナリに登録されている内容を順番に表示させようと考えたのですが、
Google App Engine のDjangoのバージョンがやや古いためか、{% for key, value in my_dic %} というここに書いてあった書き方は使えませんでした。
そこで、なんとかならないかといろいろと試行錯誤した結果、動作する方法にたどりついたのでここにメモとして残しておきます。
リクエスト処理のメソッドの中で、my_dicという名前の辞書が登録されているとします。
すると、以下のように書けば、この辞書の内容が一覧表示できます。
<table border="1"> <tr><th>Parameter</th><th>Value</th></tr> {% for kv in my_dic.items %} <tr> <td>{{ kv.0 }}</td> <td>{{ kv.1 }}</td> </tr> {% endfor %} </table>
なんだか無理やり感が漂いまくっていますが、Google App Engineで使えるDjangoのバージョンが上がるまではこれで我慢することにしました。