2011-09-11 9 views
3

基本的に、2つの独立したリストを使ってテンプレートシステムのループを作成して、テーブルの2つの列を埋めることができます。私のアプローチは、2つのリストの同じインデックスにアクセスする方法としてインデックスリスト(numList)を使用することでした。私はテンプレートのループ内でリストインデックスルックアップにドット表記法を使ってみましたが、ループでは機能していないようです。どのように私はこれを改善することができます上の任意のアイデア?djangoのテンプレートループ内でリストインデックスの参照を使用する

numList = [0, 1, 2, 3] 
placeList = ['park', 'store', 'home', 'school'] 
speakerList = ['bill', 'john', 'jake', 'tony'] 

     <table> 
      <tr> 
       <th>Location</th> 
       <th>Time</th> 
       <th>Speaker</th> 
      </tr> 
      {% for num in numList %} 
      <tr> 
       <td>{{ placeList.num }}</td> 
       <td>1:30</td> 
       <td>{{ speakerList.num }}</td> 
      </tr> 
      {% endfor %} 
     </table> 

答えて

5

最も簡単な方法は、Pythonであなたのリストを結合してからちょうどテンプレートで組み合わせリストを見て、おそらくです:

combinedList = [(placeList[i],speakerList[i]) for i in range(4)] 

{% for entry in combinedList %} 
<tr> 
<td>{{ entry.0 }}</td> 
<td>1:30</td> 
<td>{{ entry.1 }}</td> 
</tr> 
{% endfor %} 

や透明のため、あなたは可能性があり複合リストオブジェクトまたは辞書のリストを作成します:

combinedList = [{'place':placeList[i],'speaker':speakerList[i]} for i in range(4)] 

{% for entry in combinedList %} 
<tr> 
<td>{{ entry.place }}</td> 
<td>1:30</td> 
<td>{{ entry.speaker }}</td> 
</tr> 
{% endfor %} 
+0

'combinedList = zip(placeList、speake rList) 'が良いです – nulvinge

0

これらの2つのリストを1つにまとめることができます。例えば

yourlist = [('park','bill'),('store','john'),('home','jake'),...] 
関連する問題