Python Flask Basics Character Builder Looping Through Items

Dan A
PRO
Dan A
Pro Student 4,036 Points

Code Challenge: Looping Through Items

The challenge task: "Your template has been given a list named options. Loop through each item in options and create an <li> inside the <ul>. Print out the name key of each item."

I am struggling with this one and not sure what I am missing. Can I get a clarification? Based on the wording of the challenge, I am assuming 'options' is a list of dicts? If so, then those dicts have a key 'name'? So when I loop through options, my li's will output item['name'].

thx

app.py
from flask import Flask, render_template

from options import OPTIONS

app = Flask(__name__)


@app.route('/')
def index():
    return render_template('options.html', options=OPTIONS)
templates/options.html
<ul>
{% for item in options %}
  <li>{{ item['name'] }} </li>
{% endfor %}
</ul>

3 Answers

Stone Preston
Stone Preston
42,011 Points

looks like you have a space after you print the ['name'] value out right before the closing list item tag.

<ul>
{% for item in options %}
  <li>{{ item['name'] }} </li> 
{% endfor %}
</ul>

this is probably whats causing your answer to be incorrect. the challenge engine is looking for the list item to contain the value itself, not the value with a space after it

remove the space.

<ul>
  {% for item in options %}
  <li>{{ item['name'] }}</li>
  {% endfor %}

</ul>
Dan A
Dan A
Pro Student 4,036 Points

That was it! Thanks so much!

Kenneth Love
STAFF
Kenneth Love
Treehouse Guest Teacher

Thanks for helping on this one, Stone Preston. I've updated the CC because it was too picky about those spaces.

Stéphane Diez
Stéphane Diez
17,464 Points
<li>{{ item.name }}</li>

is working too