sar*_*ahm 6 python django tuples django-templates
我的视图中有一个标签列表和一个值列表,其中第一个列表中的第 n 个元素对应于第二个列表的第 n 个元素,我想在我的模板、列表或选项卡中按顺序显示它们, 例如 :
- label1 : text1
- label2 : text2 ..
Run Code Online (Sandbox Code Playgroud)
为此,我压缩了两个列表:
labels = []
texts = []
#function that fills the lists.
values = zip(labels,results)
context = {'values': values }
return render(request,'mypage.html',context)
Run Code Online (Sandbox Code Playgroud)
然后在我的模板中我试过这个:
{% for value in values %}
<ul>
<li> {{value}}.</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
但这会呈现一个页面:
我也试过用标签作为键和文本作为值的字典,它呈现得很好,但是由于它是一个字典,因此不遵守顺序。我想过其他方法,例如第一行有两个字典,第二行有另一个字典,但是由于我对 python 和 django 模板的了解不够一致,我不知道如何做到这一点。
如果有人可以提供帮助,将不胜感激。
编辑:实际上我在问这个问题两分钟后找到了答案,但我会留下它以防它可以帮助任何人。在模板中,我只是做了:
{% for labels, texts in values %}
<ul>
<li> {{labels}} : {{texts}}.</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
使用str.join:
values = [" : ".join(x) for x in zip(labels,results)]
Run Code Online (Sandbox Code Playgroud)
并将此列表传递给模板。
只zip需要在模板内进行解包:
values = zip(labels,results)
{% for label, text in values %}
<ul>
<li> {{ label }} : {{ text }}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)