from flaskbase.extensions import db from datetime import datetime from sqlalchemy.orm import foreign, remote class Page(db.Model): __tablename__ = 'pages' id = db.Column(db.Integer, primary_key=True) slug = db.Column(db.String(64), unique=True) title = db.Column(db.String(256)) content = db.Column(db.Text) created = db.Column(db.DateTime, default=datetime.utcnow, nullable=False) updated = db.Column(db.DateTime, default=datetime.utcnow, nullable=False, onupdate=datetime.utcnow) subpages = db.relationship( 'Page', primaryjoin=remote(foreign(slug)).like(slug.concat('/%')), viewonly=True) def __repr__(self): return ''.format(self)