Python Flask Basics Character Builder Loop Nested Items

Darel Bitsy
Darel Bitsy
6,910 Points

Code challenge (Flask course) i dont find the mistake ?

Here is my code

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

I don't understand why I'm not passing this code challenge

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

2 Answers

Code challenges are super picky. You had extra spaces that the challenge wasn't expecting. The spaces inside of the {{ }} is fine but everything outside is counted. You had spaces outside of the {{ }} too which made you not able to pass :)

Instead of:

<li><h2> {{ name }} </h2></li>

Which is a really good attempt, try this instead:

<li><h2>{{ name }}</h2></li>

Good luck! ~Alex

Darel Bitsy
Darel Bitsy
6,910 Points

Hi Alex actually tried this :) but no luck, the real answer was that it's a dictionary and I need to print the key name of every teacher

Darel Bitsy
Darel Bitsy
6,910 Points

I already found my error, I was assuming that teachers is a list, but it's a dictionary with a key name, sorry to disturb you guys

new code

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

Good catch! :)