オブジェクトのセットを反復処理して、特定の 1 つの属性の最大値を見つけたいのですが、jinja2 は、反復子の外部で宣言された変数に対する反復子内のアクションを無視します。例えば:
{% set maximum = 1 %}
{% for datum in data %}
{% if datum.frequency > 1 %}
{% set maximum = datum.frequency %}
{% endif %}
{% endfor %}
{# maximum == 1 #}
datum.frequency
datum
の一部では、 が 1 より大きいことは間違いありませんdata
。
編集(解決策)
これはこの投稿に似ていますが、もう少しあります。以下は機能し、非常に醜いです。
{% set maximum = [1] %}
{% for datum in data %}
{% if datum.freq > maximum[-1] %}
{% if maximum.append( datum.freq ) %}{% endif %}
{% endif %}
{% endfor %}
{% set maximum = maximum[-1] %}