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

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

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>