Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Flask Basics Character Builder Loop Nested Items

Daniel Bowen
Daniel Bowen
8,562 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
8,562 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,248 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
8,562 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.