7

Im wondering how i could show the dictionary key itself in a django template

Example dictionary:

resources = {'coin': coin, 'grain': grain, 'iron': iron, 'stone': stone, 'wood': wood,}

Template

<b>Coin: </b>{{ upgrade.coin }}

Were i want to use the dictionary key (+some html) instead of the hard coded "Coin:"

Can anyone please help me out?

Hans de Jong
  • 2,030
  • 6
  • 35
  • 55

2 Answers2

9

Use for tag with dict.items if you want to print all key/value pairs:

{% for key, value in resources.items %}
    <b>{{ key }}: </b>{{ value }}
{% endfor %}
falsetru
  • 357,413
  • 63
  • 732
  • 636
3

In your views, you can pass to render the whole dictionary and iterate over it in your template.

views.py

def home(request):
    resources = {'coin': coin, 'grain': grain, 'iron': iron, 'stone': stone, 'wood': wood,}
    return render(request, "home.html", {'r':resources})

home.html

{% for key,value in r.items %}
    {{ key }}
{% endfor %}
macfij
  • 3,093
  • 1
  • 19
  • 24
  • Thanks, in view i was already using render, didn't realize you could do it with key + value in the for loop, thought you only could use the value – Hans de Jong Jan 06 '14 at 18:42