
Dan A
Pro Student 4,036 PointsCode 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
from flask import Flask, render_template
from options import OPTIONS
app = Flask(__name__)
@app.route('/')
def index():
return render_template('options.html', options=OPTIONS)
<ul>
{% for item in options %}
<li>{{ item['name'] }} </li>
{% endfor %}
</ul>
3 Answers

Stone Preston
42,015 Pointslooks 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>

Kenneth Love
Treehouse Guest TeacherThanks for helping on this one, Stone Preston. I've updated the CC because it was too picky about those spaces.

Stone Preston
42,015 Pointsno problem

Stéphane Diez
19,350 Points<li>{{ item.name }}</li>
is working too
Dan A
Pro Student 4,036 PointsDan A
Pro Student 4,036 PointsThat was it! Thanks so much!