Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

Python Flask Basics Character Builder Looping Through Items

Dan A
PLUS
Dan A
Courses Plus 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,016 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>
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
19,350 Points
<li>{{ item.name }}</li>

is working too