2012-02-22 27 views
6

私は16の結果のリストを持っています。それを "結果"と呼んでください。私はそれらを4 x 4のテーブルに配置したいと思います。djangoテンプレートをHTMLテーブルに配列

djangoテンプレートを使用すると、どうすればいいですか? (それはサイクルのようにここで私を助けるだろうと思わない)

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

ありがとう!!

あなたは(実際には、辞書)の配列を有することを条件とする。この

<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> 

のようなものを構築する必要があり

答えて

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

このよう

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.resultを反復され、キーがresult.result.name


あるこの

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

を渡している場合、私はまた、あなたがリスト、セット、辞書を持っているいずれかのことを思い出させるしたい、またはただし、配列をインポートして使用することはできます。

+4

ない私はそのr.nameとR.TIME、r.address、r.date結果%のR用 {%だと思うresult.name } {{result.name}} {{result.address}} {{result.time}} {{result.date}} {%endfor%} – zabusa

関連する問題