Создайте для себя отношение для абстрактной модели - PullRequest
1 голос
/ 10 октября 2019

У меня есть абстрактная модель:

@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'))

Но я не уверен в правильности этого решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...