from app import db from marshmallow import Schema, fields, ValidationError, pre_load class Book(db.Model): __tablename__ = 'books' id = db.Column(db.Integer, primary_key = True) title = db.Column(db.String(255)) file = db.Column(db.String(255)) cover = db.Column(db.String(255)) fileformat = db.Column(db.String(255)) author = db.relationship('Author') tag = db.Column(db.String(255)) def __init__(self, title, file, cover, fileformat, tag): self.title = title self.file = file self.cover = cover self.fileformat = fileformat self.tag = tag def __repr__(self): return '' % self.title def get_id(self): return self.id class Author(db.Model): __tablename__ = 'authors' id = db.Column(db.Integer(), primary_key=True) user_id = db.Column(db.Integer(), db.ForeignKey('books.id')) author_name = db.Column(db.String(50)) def __init__(self, author_name): self.author_name = author_name class BookSchema(Schema): id = fields.Int(dump_only=True) title = fields.Str() author = fields.Str() file = fields.Str() cover = fields.Str() fileformat = fields.Str() tag = fields.Str() def must_not_be_blank(data): if not data: raise ValidationError('You forgot to write stuff.')