Django как выполнить цикл с использованием диапазона через два списка одновременно

Я работаю с Django и хотел бы выполнить итерацию по двум спискам так, чтобы они были рядом: my views file:

def displayDict(request):
     data = ["a", "b", "c"]
     data2 = ["x", "y", "z"]
     return render(request, 'chattr.html',
     {'range': range(0,len(data)-1),'dictItems': data, "otherDict" : "other_bot", "dictItems_bot": data2, "otherDict2": "bot" , "duo" : (data, data2)})

мой шаблон:

{% for i in range %}
    <p>
        {{i}} <br>
        <b>{{otherDict}}:</b> {{dictItems.i}} <br>
        <b>{{otherDict2}}:</b> {{dictItems_bot.i}} <br>
        {% comment %} {{a|add:1}} {% endcomment %}
    </p>
{% endfor %} 

Я хотел бы получить веб-страницу, которая выглядит следующим образом:
other_bot: 'a'
dictItems_bot: 'x'
other_bot: 'b'
dictItems_bot: 'y'
other_bot: 'c'
dictItems_bot: 'z'

В настоящее время ничего не отображается, кроме имен ботов:
other_bot:
dictItems_bot:
другой_бот:
dictItems_bot:

Возможно, я также смогу сделать этот внутренний цикл, используя кортежи, Шаблон Django: цикл через два списка. Но это было бы намного сложнее,...

Для таких проблем у меня установлена Django Debug Toolbar, которая позволяет мне видеть контекст. Я подозреваю, что ваш "диапазон" имеет проблему, потому что {{i}} не выводится (или выводится?), поэтому вы просто зацикливаетесь один раз вместо трех, то есть не зацикливаетесь вообще.

попробуйте это...

view.py

def display_dict(request):
    data = ["a", "b", "c"]
    data2 = ["x", "y", "z"]
    context = {"data": zip(data, data2), "otherDict": "other_bot","otherDict2": "dictItems_bot"}
    return render(request, 'home.html', context)

HTML

{% for element in data %}
    <p><b>{{ otherDict }}:</b>{{ element.0 }}</p>
    <p><b>{{ otherDict2 }}:</b>{{ element.1 }}</p>
{% endfor %}
Вернуться на верх