python - 在 Jinja(Django) 中使用字典索引显示列表元素

标签 python django dictionary jinja2

我正在使用 Django 版本 2.1.7、jinja2,并且我尝试在 Jinja 模板中使用 forloop.counter0 迭代字典内的列表。

MyCode Views.py:

 def sample(request):
    datas= ['value1','value2','value3'] #list
    data={'key1':'val1','key2':'val2','key3':'val3'} #dictionary
    return render(request,'index.html',{'datalist':datas,'datadic':data})

Index.html(Jinja):

{% for dic in datadic %} 
    {{ dic }}
    {{ datalist.forloop.counter0 }} 
{% endfor %}
<!-- datalist.0 is only possible after research ,but is it constant 
for every iteration -->

预期输出:

val1 value1
val2 value2
val3 value3

最佳答案

您应该在 View 中压缩数据并在模板中迭代一次。

zipped_data = zip(data.values(), datas)
return render(request, 'index.html', {'zipped_data': zipped_data})

...

{% for d1, d2 in zipped_data %}
   {{ d1 }} {{ d2 }}
{% endfor %}

关于python - 在 Jinja(Django) 中使用字典索引显示列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55512250/

相关文章:

python - 使用 scikit-learn 管道与手动执行时的分数不同

python - 跟踪 celery.group 任务的进度?

Django order_by 多对多关系

python - 将变量 "by name"添加到本地命名空间

javascript - 解析 Django 模型服务器端还是客户端?

python - Ghost.py 找不到 PySide?

python - 如何在 Django 模板上下文中获取 "debug"变量?

python - 如何使用neo4jrestclient创建一个具有Python字典属性的节点?

c++ - boost::fusion::map 允许重复键

Python 错误 : OSError: [WinError 193] %1 is not a valid Win32 application