django模板中的元组列表

时间:2013-07-29 08:20:31

标签: python django django-templates tuples

我的视图中有一个标签列表和一个值列表,其中第一个列表中的第n个元素对应于第二个列表的第n个元素,我想在我的模板中按顺序显示它们或标签,例如:

- label1 : text1 
- label2 : text2 ..

为此,我将两个列表压缩:

labels = []
texts = [] 
#function that fills the lists.
values = zip(labels,results)
context = {'values': values }  
return render(request,'mypage.html',context)

然后在我的模板中我尝试了这个:

{% for value in values %}
<ul>
<li> {{value}}.</li>
</ul>

但这会呈现一个页面:

  • ('label1','text1')
  • ('label2','text2')

我还尝试过将字符串作为键和文本作为值的字典,它渲染得很好,但是由于它是一个字典,因此订单不受尊重。我已经想到了其他方法,例如第一行有两个词典,第二行有另一个词典,但是我对python和django模板的了解不够,我不知道怎么做。

如果有人可以提供帮助,我们将不胜感激。

编辑:实际上我在问这个问题之后找到了两个小时的答案,但我会留下来以防它可以帮助任何人。在模板中,我刚刚做了:

{% for labels, texts in values %}
<ul>
<li> {{labels}} : {{texts}}.</li>
</ul>

1 个答案:

答案 0 :(得分:4)

使用str.join

values = [" : ".join(x) for x in zip(labels,results)]

并将此列表传递给模板。

只需要zip,您需要在模板中解压缩:

values = zip(labels,results)

{% for label, text in values %}
<ul>
<li> {{ label }} : {{ text }}</li>
</ul>