2012-02-22 1 views
6

У меня есть список из 16 результатов, назовем это «результатами». Я хочу устроить их в таблице 4 х 4.django template turn array в таблицу 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

+0

Спасибо, работает так, как мне нужно. ценить это. –

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


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

+4

не result.name я думаю, что его r.name и r.time, r.address, r.date {% для г в результате% } {{result.name}} {{result.address}} {{result.time}} {{result.date}} {% endfor%} – zabusa