Django テンプレートで 2 つのリストを反復処理する 質問する

Django テンプレートで 2 つのリストを反復処理する 質問する

Django テンプレートで以下のリストの反復処理を実行したいです。

foo = ['foo', 'bar'];
moo = ['moo', 'loo'];

for (a, b) in zip(foo, moo):
    print a, b

ジャンゴコード:

{% for a, b in zip(foo, moo) %}
  {{ a }}
  {{ b }}
{% endfor %}

これを試すと以下のエラーが発生します:

File "/base/python_lib/versions/third_party/django-0.96/django/template/defaulttags.py", line 538, in do_for
    raise TemplateSyntaxError, "'for' statements should have either four or five words: %s" % token.contents

これを実現するにはどうすればいいでしょうか?

ベストアンサー1

zipビューでは以下を使用できます:

mylist = zip(list1, list2)
context = {
            'mylist': mylist,
        }
return render(request, 'template.html', context)

テンプレートでは

{% for item1, item2 in mylist %}

両方のリストを反復処理します。

これは Django のすべてのバージョンで動作するはずです。

おすすめ記事