django模板将数组转换为HTML表

Bil*_* VB 10 django django-templates

我有一个16个结果列表,我们称之为"结果".我想把它们安排在4 x 4的桌子上.

使用django模板,我该怎么做?(看起来周期不会对我有帮助)

<table>
{% for r in results %}
...?
{% endfor %}
</table>
Run Code Online (Sandbox Code Playgroud)

谢谢!!

Tho*_*mas 21

您可以使用此cycle标记.

<table>
  {% for r in results %}
    {% cycle '<tr>' '' '' '' %}
      <td>{{r.content}}</td>
    {% cycle '' '' '' '</tr>' %}
  {% endfor %}
</table>
Run Code Online (Sandbox Code Playgroud)

会输出类似......

<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>
Run Code Online (Sandbox Code Playgroud)


Cpp*_*ner 13

你需要建立这样的东西

<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>
Run Code Online (Sandbox Code Playgroud)

只要你有这样一个数组(实际上是一个字典)

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

有很多这样做.这是最直接的方式.看看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}
Run Code Online (Sandbox Code Playgroud)

你正在迭代result.result,关键是result.result.name


我还想提醒你,你有一个列表,一个集合,一个字典或一个元组.但是你可以导入数组并使用它.

  • 不是result.name我认为它的r.name和r.time,r.address,r.date {%for r in result%} <tr> <th> {{result.name}} </ th> <th> {{result.address}} </ th> <th> {{result.time}} </ th> <th> {{result.date}} </ th> </ tr> {%endfor%} (5认同)