23 lines
751 B
Python
23 lines
751 B
Python
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 '<Page {0.slug} "{0.title}">'.format(self)
|