How to output a comma delimited list in jinja python template? How to output a comma delimited list in jinja python template? python python

How to output a comma delimited list in jinja python template?


You want your if check to be:

{% if not loop.last %}    ,{% endif %}

Note that you can also shorten the code by using If Expression:

{{ ", " if not loop.last else "" }}


you could also use the builtin "join" filter (http://jinja.pocoo.org/docs/templates/#join like this:

{{ users|join(', ') }}


And using the joiner from https://jinja.palletsprojects.com/templates/#joiner

{% set comma = joiner(",") %}{% for user in userlist %}    {{ comma() }}<a href="/profile/{{ user }}/">{{ user }}</a>{% endfor %}  

It's made for this exact purpose. Normally a join or a check of forloop.last would suffice for a single list, but for multiple groups of things it's useful.

A more complex example on why you would use it.

{% set pipe = joiner("|") %}{% if categories %} {{ pipe() }}    Categories: {{ categories|join(", ") }}{% endif %}{% if author %} {{ pipe() }}    Author: {{ author() }}{% endif %}{% if can_edit %} {{ pipe() }}    <a href="?action=edit">Edit</a>{% endif %}