from app import db from app.models.post import Post from app.models.comment import Comment from config import V5Config class Thread(Post): """ Some thread, such as a topic, program, tutorial """ # Foreign Post object ID __tablename__ = 'thread' id = db.Column(db.Integer, db.ForeignKey('post.id'), primary_key=True) # Identify threads as a type of posts using the table name, and add a # column to further discriminate types of threads thread_type = db.Column(db.String(20)) __mapper_args__ = { 'polymorphic_identity': __tablename__, 'polymorphic_on': thread_type } # Properties title = db.Column(db.Unicode(V5Config.THREAD_NAME_MAXLEN)) # Also a relation [comments] populated from the Comment class. # Relations top_comment_id = db.Column(db.Integer, db.ForeignKey('comment.id')) top_comment = db.relationship('Comment', foreign_keys=top_comment_id) def __init__(self, author, text, title): """ Create a Thread """ Post.__init__(author, text) self.title = title def __repr__(self): return f'