2012-02-22 119 views
6

我有一个16个结果的列表,我们称之为“结果”。我想安排他们在一张4 x 4桌。django模板将数组转换为HTML表格

使用django模板,我该怎么做? (它似乎不像周期会帮助我在这里)

<table> 
{% for r in results %} 
...? 
{% endfor %} 
</table> 

谢谢!!

回答

16

您可以使用cycle标签。

<table> 
    {% for r in results %} 
    {% cycle '<tr>' '' '' '' %} 
     <td>{{r.content}}</td> 
    {% cycle '' '' '' '</tr>' %} 
    {% endfor %} 
</table> 

将输出类似...

<table> 
    <tr> 
    <td>result 1</td> 
    <td>result 2</td> 
    <td>result 3</td> 
    <td>result 4</td> 
    </tr> 
    <tr> 
    <td>result 5</td> 
    <td>result 6</td> 
    <td>result 7</td> 
    <td>result 8</td> 
    </tr> 
    <!-- etc --> 
</table> 
+0

好戏。现在我拯救了这个。学习新事物! – CppLearner 2012-02-22 01:59:46

+0

谢谢,按我的需要工作。欣赏它。 – 2012-02-22 02:36:15

7

你需要建立这样的事情

<table> 
<tr> 
    <th>header1</th> 
    <th>header2</th> 
    <th>header3</th> 
    <th>header4</th> 
</tr> 
{% for r in result %} 
<tr> 
    <th> {{ result.name }}</th> 
    <th> {{ result.address }}</th> 
    <th> {{ result.time }}</th> 
    <th> {{ result.date }}</th> 
</tr> 
{% endfor %} 
</table> 
提供

,你有一个数组(实际上,字典)这样

result['name'] 
result['address'] 
result['time'] 
result['date'] 
return render_to_response("my_template.html", {'result:result'}) 

有许多的做到这一点。这是最直接的方法。看看Django模板标签文档。

下面是我在整个过程中学到的技术列表。还有更多,但我没有时间记录所有这些。 http://binarybugs01.appspot.com/entry/template-iteration-techniques

有时你必须小心处理传递给模板的上下文字典。 如果你通过这个

result = {'name': 'John', 'time': '12/2/2012'....etc} 
context['result'] = result 
return render_to_response("my_template.html", context} 

你迭代result.result和键result.result.name


我也想提醒你,你要么有一个列表,集,字典,或但是,您可以导入数组并使用它。

+4

不result.name我认为它r.name和r.time,r.address,r.date {%为结果%R } {{result.name}} {{result.address}} {{result.time}} {{result.date}} {%endfor%} – zabusa 2016-03-15 12:00:47