Как я могу унаследовать класс, наследующий db.Model - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь создать другую таблицу sql с помощью sqlalchemy путем объединения с приложением flask

У меня есть класс Table1 db.model, который имеет некоторые функции, и я хочу использовать его функции, создание другой таблицы классов Table2 с некоторыми дополнительными столбцами (которая наследует существующий), к сожалению, когда я попытался сделать это, механизм автоматической формы SQLAlchemy не создал table, как это было с другими классами, которые наследуют db.model

db = SQLAlchemy(app)

class Table1(db.Model):
   __tablename__ = "table1"

   id                   = db.Column(db.String(36),  primary_key=True)

class Table2(Table1):
   __tablename__ = "table2"

   id                   = db.Column(db.String(36),  primary_key=True)
   extra_column         = db.Column(db.String(36),  primary_key=True)

1 Ответ

1 голос
/ 07 мая 2020

Вы должны добавить __abstract__ = True в Table1, НО Table1 не будет создан системой ORM SQLAlchemy

      db = SQLAlchemy(app)



      class Table1(db.Model):
           __tablename__ = "table1"
           __abstract__ = True

           id                   = db.Column(db.String(36),  primary_key=True)

        class Table2(Table1):
           __tablename__ = "table2"

           id                   = db.Column(db.String(36),  primary_key=True)
           extra_column         = db.Column(db.String(36),  primary_key=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...