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 Loop Nested Items

Daniel Bowen
Daniel Bowen
7,224 Points

Not sure what I'm doing wrong here, as far as I can tell everything is right.

I've looked through a bit of stuff on the forums, can't find anything to help.

flask_app.py
from flask import Flask, render_template

from teachers import TEACHERS

app = Flask(__name__)


@app.route('/')
def index():
    return render_template("teachers.html", teachers=TEACHERS)
templates/teachers.html
<ul class="teachers">
  {% for listItem in teachers %}
  <li><h2>{{ listItem["name"] }}</h2>
  <ul class="courses">
    {% for listItem in teachers %}
     <li>{{ listItem ["courses"] }}</li>
    {% endfor %}
    </ul></li>
{% endfor %}

</ul>
Daniel Bowen
Daniel Bowen
7,224 Points

Now add a new <ul> inside of the <li> with a class of "courses". Inside this <ul> loop through the teacher's 'courses' key, creating an <li> for each course and printing the course.

1 Answer

Christopher Shaw
seal-mask
PLUS
.a{fill-rule:evenodd;}techdegree seal-36
Christopher Shaw
Python Web Development Techdegree Graduate 58,236 Points

You are not looping though the teachers courses. To loop though the courses in the inner loop:

    <ul class="courses">
      {% for course in listItem["courses"] %}
         <li>{{ course }}</li>
      {% endfor %}
    </ul>
'''

You have also used the same variable name 'listItem' on the inner and outer loop. This is a bad practice as the as the variable will change.
Daniel Bowen
Daniel Bowen
7,224 Points

You're fine, and thank you for pointing that out. Worked like a charm. I've gotten so used to copying and pasting pieces of the code challenges it slipped past me. Thanks again.