TimeBigot
TimeBigot

Reputation: 47

How do you iterate tuple values in a dictionary for django context

I am trying to push a Django context dictionary to a template.

I have a bunch of values for songs and created a dictionary with tuple values like so:

songs = {'titles': ('Hello', 'Umbrella'), 'artists': ('Adele', 'Rihanna')}

How do I loop it to output:

Hello
Adele

Umbrella
Rihanna

Or maybe I should rethink my context dictionary setup?

Upvotes: 0

Views: 96

Answers (2)

Anderson Lima
Anderson Lima

Reputation: 246

In your view:

titles = ('Hello', 'Umbrella')
artists = ('Adele', 'Rihanna')
songs = {'titles_artists': zip(titles, artist)}

in your template:

{% for title, artist in titles_artists %}
    <p>{{ title }}<br>{{ artist }}</p>
{% endfor %}

You can try rethink your context dictionary, something like:

songs = {'artists': [
                        {'name': 'Adele', 'titles': ['Hello', ]}, 
                        {'name': 'Rihanna', 'titles': ['Umbrella', ]}
                    ]
        }

And in your template:

{% for artist in artists %}
    {% for title in artist.titles %}
         {{ title }}
    {% endfor %}
    {{ artist.name }}
{% endfor %}

Upvotes: 0

zondo
zondo

Reputation: 20346

Do this:

for title, artist in zip(songs['titles'], songs['artists']):
    print(title)
    print(artist)
    print() # In Python 2, remove the parentheses

Upvotes: 1

Related Questions