class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), nullable=False, unique=True) password = db.Column(db.String(200), nullable=False) favorite_books = db.relationship( 'Book', secondary='user_book', back_populates='users_who_favorited') def __repr__(self): return f'<User: {self.username}>'
class Author(db.Model): """Author model.""" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False) biography = db.Column(db.String(200)) books = db.relationship('Book', back_populates='author') def __str__(self): return f'<Author: {self.name}>' def __repr__(self): return f'<Author: {self.name}>'
class Author(db.Model): """Author model.""" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False) biography = db.Column(db.String(200)) books = db.relationship("Book", back_populates="author") # birthdate = db.Column(db.Date) def __str__(self): return f"<Author: {self.name}>" def __repr__(self): return f"<Author: {self.name}>"
class Book(db.Model): """Book model.""" id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(80), nullable=False) publish_date = db.Column(db.Date) # The author - Who wrote it? author_id = db.Column(db.Integer, db.ForeignKey("author.id"), nullable=False) author = db.relationship("Author", back_populates="books") # The audience - Who is this book written for? audience = db.Column(db.Enum(Audience), default=Audience.ALL) # The genres, e.g. fiction, sci-fi, fantasy genres = db.relationship("Genre", secondary="book_genre", back_populates="books") # Who favorited this book? users_who_favorited = db.relationship("User", secondary="user_book", back_populates="favorite_books") def __str__(self): return f"<Book: {self.title}>" def __repr__(self): return f"<Book: {self.title}>"
class Book(db.Model): """Book model.""" id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(80), nullable=False) publish_date = db.Column(db.Date) # The author - Who wrote it? author_id = db.Column(db.Integer, db.ForeignKey('author.id'), nullable=False) author = db.relationship('Author', back_populates='books') # The audience - Who is this book written for? audience = db.Column(db.Enum(Audience), default=Audience.ALL) # The genres, e.g. fiction, sci-fi, fantasy genres = db.relationship('Genre', secondary='book_genre', back_populates='books') def __str__(self): return f'<Book: {self.title}>' def __repr__(self): return f'<Book: {self.title}><Publish Date: {self.publish_date}>'
class Genre(db.Model): """Genre model.""" id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(80), nullable=False, unique=True) books = db.relationship('Book', secondary='book_genre', back_populates='genres') def __str__(self): return f'<Genre: {self.name}>' def __repr__(self): return f'<Genre: {self.name}>'
class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), nullable=False, unique=True) favorite_books = db.relationship("Book", secondary="user_book", back_populates="users_who_favorited")
class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(100), nullable=False, unique=True) favorite_books = db.relationship('Book', secondary="favorite_books")