Si tengo una lista de userspalabras ["Sam", "Bob", "Joe"], quiero hacer algo donde pueda generar mi archivo de plantilla jinja:
{% for user in userlist %}
<a href="/profile/{{ user }}/">{{ user }}</a>
{% if !loop.last %}
,
{% endif %}
{% endfor %}
Quiero hacer que la plantilla de salida sea:
Sam, Bob, Joe
Intenté el código anterior para verificar si estaba en la última iteración del bucle y, si no, no inserte una coma, pero no funciona. ¿Cómo hago esto?

!como operador de negación. "no" se deletrea "no".Respuestas:
Desea que su
ifcheque sea:Tenga en cuenta que también puede acortar el código utilizando If Expression :
fuente
{{ "," if not forloop.last }}{{ "," if not loop.last else "" }}también puede usar el filtro incorporado "join" ( http://jinja.pocoo.org/docs/templates/#join así:
fuente
ansible -i localhost, all -m debug -a "msg=\"{{ [ 'a','b','c' ]|join('X') }}\""Y usando el
joinerde http://jinja.pocoo.org/docs/dev/templates/#joinerEstá hecho para este propósito exacto. Normalmente, una combinación o una comprobación de forloop.last sería suficiente para una sola lista, pero para múltiples grupos de cosas es útil.
Un ejemplo más complejo de por qué lo usarías.
fuente
El siguiente código funcionó usando el filtro de unión jinja2 que Uli Martens sugirió en el shell python3.5:
fuente