шаблон django превращает массив в таблицу HTML - PullRequest
10 голосов
/ 22 февраля 2012

У меня есть список из 16 результатов, назовем его «результаты».Я хочу расположить их в таблице 4 x 4.

Используя шаблон django, как я могу это сделать?(Не похоже, что цикл поможет мне здесь)

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

Спасибо !!

Ответы [ 2 ]

20 голосов
/ 22 февраля 2012

Вы можете использовать для этого тег 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>
12 голосов
/ 22 февраля 2012

Вам нужно построить что-то вроде этого

<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


Я также хочу напомнить вам, что у вас есть список, набор, словарь или кортеж. Однако вы можете импортировать массив и использовать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...