2017-03-21 2 views
1

リスト内で特定の値を持つアイテムの数を数え、そのアイテムをループする前後にこのカウントを出力します。私は次のように試しました:ジンジャーループ前後の印刷枚数

これをレンダリングすると、予想通り前と後の値が異なります。

Counter : 0 
Counter : 100 

ループの前でも100を得ることは可能ですか?

答えて

4

あなたの直接の質問には:いいえ、計算する前に変数をレンダリングすることはできません。


selectattrフィルタを使用してください。ジェネレータが返されるので、lengthを使用する前にlistフィルタを使用してください。

{{ array|selectattr('maybe_true')|list|length }} 

あなたの実際のコードは、これよりも複雑である場合には、テンプレートに処理されたデータを送信するのPythonにロジックを移動することを検討。

true_items = [i for i in array if i.maybe_true] 
return render_template('index.html', array=array, true_items=true_items) 
{{ true_items|length }} 
{% for i in array %} 
    ... 
{% endfor %} 
{{ true_items|length }}