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 SQLAlchemy Basics Introduction to SQLAlchemy Movie Database Continued

Sebastiaan van Vugt
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Sebastiaan van Vugt
Python Development Techdegree Graduate 15,142 Points

Variable new_movie that is instance of Movie() created, but fails

The following code works in VS code and the resulting db file contains the new entry. However, I keep getting the error "Bummer: You should have a variable called new_movie that creates an instance of Movie()." Am I really doing something wrong? It doesn't seem like that the error description applies.

---Python---

from sqlalchemy import create_engine, Column, Integer, String from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker

engine = create_engine('sqlite:///movies.db', echo=False) Session = sessionmaker(bind=engine) session = Session() Base = declarative_base()

class Movie(Base): tablename = 'movies'

id = Column(Integer, primary_key=True)
movie_title = Column(String)
genre = Column(String)

def __repr__(self):
    return f"<Movie(movie_title='{self.movie_title}', genre='{self.genre}')>"

if name == 'main': Base.metadata.create_all(engine) new_movie = Movie(movie_title='title1',genre='gen1') session.add(new_movie) session.commit()

---end---

models.py
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

engine = create_engine('sqlite:///movies.db', echo=False)
Session = sessionmaker(bind=engine)
session = Session()
Base = declarative_base()


class Movie(Base):
    __tablename__ = 'movies'

    id = Column(Integer, primary_key=True)
    movie_title = Column(String)
    genre = Column(String)

    def __repr__(self):
        return f"<Movie(movie_title='{self.movie_title}', genre='{self.genre}')>"

if __name__ == '__main__':
    Base.metadata.create_all(engine)
    new_movie = Movie(movie_title='title1',genre='gen1')
    session.add(new_movie)
    session.commit()

1 Answer

Steven Parker
Steven Parker
242,177 Points

It appears that the challenge isn't accepting a genre that contains a digit. Use just "gen" or anything else containing only letters and you should pass the challenge.

If you consider this to be a bug in the challenge, you might want to make a bug report as described on the Support page. If they agree and you're the first to report it, it should get you the special Exterminator badge. :beetle: