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

Blue DiamondXD
Blue DiamondXD
5,369 Points

Now add a new <ul> inside of the <li> with a class of "courses". Inside this <ul> loop through the teacher's 'courses' k

im confuse ;-;

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 item in teachers %}
  <li>
    <h2>{{ item["name"] }}</h2>
  </li>
  {% endfor %}
</ul>

I'm stuck on this one as well. The challenges in this whole chapter have been confusing because I can't see the data and see how the array is structured. I keep getting errors trying to figure out how to code it.

Edit. Uh well I accidentally solved it. Finally found the right code I had to use. The two lines I left spaced out below are where I kept having my problem. The problem ended up being my call back to the teachers array for the course information. For the life of me I can't get this to work again. I altered the code several times and eventually it accepted it but immediately skipped to the next video and I lost what the fix was.

NOTE this doesn't work:

<ul class="teachers">
  {% for teacher in teachers %}
    <li>
      <h2>{{ teacher["name"] }}</h2>
    </li>
  {% endfor %}
  <ul class="courses">

  {% for course in teachers['courses'] %}
    <li>{{ course }}</li>

  {% endfor %}
  </ul>
</ul>

1 Answer

Joseph Soderberg
Joseph Soderberg
3,155 Points

The teacher dict you're iterating through should be teacher['courses'] not teachers['courses']

<ul class="teachers">
  {% for teacher in teachers %}
  <li>
    <h2>{{ teacher["name"] }}</h2>
    <ul class="courses">
    {% for course in teacher['courses'] %}
      <li>
        {{ course }}
      </li>
    {% endfor %} 
    </ul> 
  </li>
  {% endfor %}
</ul>