2016-11-03 7 views
2

jinja2テンプレートのテーブルにアイテムのリストを出力することを検討しています。Jinja2 - xのグループでリストアイテムをレンダリングする

現在のコード:

になり
<table style="width:100%"> 
{% for i in sales %} 
    <tr> 
    <td>{{i}}</td> 
    </tr> 
{% endfor %} 
</table> 

item 
item 
item 
item 
... 

予想される出力:

item item item   
item item item  
item item item  
item item item  
... 

私は出力が3つの列、すなわち広がることがしたいと思います。テーブルの左から右へループし、3つの項目の後に新しい行を開始します。

答えて

1

あなたはあなたの答えのためにbatch

>>> import Jinja2 
>>> t = jinja2.Template("{% for i in items|batch(3) %}{{i}}{% endfor %}") 
>>> items = ['1', '2', '3', '4', '5', '6', '7', '8', '9'] 
>>> print t.render(items=items) 
>>> ['1', '2', '3']['4', '5', '6']['7', '8', '9'] 
1

divisiblebyテストを使用できます。

{% for i in sales %} 
    {% if loop.index0 is divisibleby(3) %} 
    <tr> 
    {% endif %} 
    <td>{{i}}</td> 
    {% if loop.index is divisibleby(3) %} 
    </tr> 
    {% endif %} 
{% endfor %} 
+0

感謝を使用することができますが、このjsutが行出力: '項目項目項目... item'を – user3939059

関連する問題