Concaténation de ficelles en Jinja
je veux simplement passer en boucle une liste existante et en faire une chaîne délimitée par une virgule.
Quelque chose comme ceci: my_string = 'stuff, stuff, stuff, stuff'
je sais déjà à propos de loop.last
, j'ai juste besoin de savoir comment faire fonctionner la troisième ligne de mon code ci-dessous.
{% set my_string = '' %}
{% for stuff in stuffs %}
{% set my_string = my_string + stuff + ', '%}
{% endfor%}
4 réponses
Mon mal, en essayant de simplifier, je suis allé trop loin, en fait stuffs
est un enregistrement de toutes sortes d'informations, je veux juste l'id dedans.
stuffs = [[123, first, last], [456, first, last]]
je veux my_sting
my_sting = '123, 456'
Mon code devrait ressembler à ceci:
{% set my_string = '' %}
{% for stuff in stuffs %}
{% set my_string = my_string + stuff.id + ', '%}
{% endfor%}
Penser stuffs
est probablement un dictionnaire, mais vous obtenez l'essentiel.
Oui j'ai trouvé l' join
filtre, et allait l'aborder comme ceci:
{% set my_string = [] %}
{% for stuff in stuffs %}
{% do my_string.append(stuff.id) %}
{% endfor%}
{% my_string|join(', ') %}
Mais de l'ajouter ne fonctionne pas sans importer les extensions pour le faire, et la lecture de cette documentation m'a donné un mal de tête. Il ne dit pas explicitement où l'importer ou même où vous mettriez la déclaration d'importation, donc je me suis dit que trouver un moyen de concat serait le moindre des deux maux.
juste un autre piratage peut être comme ça.
j'ai un tableau de chaînes que je dois concaténer. J'ai donc ajouté ce tableau dans le dictionnaire, puis utilisé à l'intérieur de la boucle qui a fonctionné.
{% set dict1 = {'e':''} %}
{% for i in list1 %}
{% if dict1.update({'e':dict1.e+":"+i+"/"+i}) %} {% endif %}
{% endfor %}
{% set layer_string = dict1['e'] %}
si vous ne pouvez pas simplement utiliser la jointure de filtre mais avez besoin d'effectuer quelques opérations sur l'entrée du tableau:
{% for entry in array %}
User {{ entry.attribute1 }} has id {{ entry.attribute2 }}
{% if not loop.last %}, {% endif %}
{% endfor %}