views:

51

answers:

3

I just want to loop through an existing list and make a comma delimited string out of it.
Something like this: my_string = 'stuff, stuff, stuff, stuff'

I already know about loop.last, I just need to know how to make the third line in my code below WORK.

{% set my_string = '' %}
{% for stuff in stuffs %}
{% set my_string = my_string + stuff + ', '%}
{% endfor%}
+1  A: 

If stuffs is a list of strings, just this would work:

{{ stuffs|join(", ") }}

Link to documentation.

Adam Bernier
A: 

My bad, in trying to simplify it, I went to far, actually stuffs is a record of all kinds of info, I just want the id in it.

stuffs = [[123, first, last], [456, first, last]]

I want my_sting to be

my_sting = '123, 456'

My original code should have looked like this:

{% set my_string = '' %}
{% for stuff in stuffs %}
{% set my_string = my_string + stuff.id + ', '%}
{% endfor%}

Thinking about it stuffs is probably a dictionary, but you get the jist.

Yes I found the join filter, and was going to approach it like this:

 {% set my_string = [] %}
 {% for stuff in stuffs %}
 {% do my_string.append(stuff.id) %}
 {% endfor%}
 {%  my_string|join(', ') %}

But the append doesn't work with out importing the extentions to do it, and reading that documentation gave me a headache, it doesn't explicitly say where to import it from or even where you would put the import statement, so I figured finding a way to concat would be the lesser of the two evils.

KacieHouser
A: 

OK that original code I posted works, I had it in {{}} in my actual code instead of {%%} I have been searching and searching on the best way to approach it and the things available to me to do it, and that was at the end of the day into the night, so that {{}} slipped through in my frustration. Thank you for the response though

KacieHouser