У меня есть абстрактная модель:
@as_declarative
class Base(Model):
__abstract__ = True
@declared_attr
def __tablename__(cls):
return cls.__name__.lower() + 's'
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String, nullable=False)
Несколько других моделей будут унаследованы от этой модели, каждая из которых должна иметь отношение к себе.
Удобно зарегистрировать этосвязь в абстрактной модели, чтобы не записывать ее в каждую дочернюю модель.
Но я не нашел ни в документации, ни в обсуждениях, как правильно ее реализовать.
Я предполагаю, чтоэто можно будет сделать с помощью этого метода:
...
@declared_attr
def parent_id(cls):
return Column('parent_id', ForeignKey(cls.__tablename__ + '.id'))
Но я не уверен в правильности этого решения.