Python 与多个模型的一对多关系

Python 与多个模型的一对多关系,python,sqlalchemy,flask,flask-sqlalchemy,Python,Sqlalchemy,Flask,Flask Sqlalchemy,我有一个模型东西和一个模型动作。在事物s和动作s之间存在一对多关系。但是,我希望能够将Action子类化,以便(例如)BuildAction、HealAction和BloodyStupidAction。是否可以使用Flask SQLAlchemy来执行此操作并维护单对多关系?下的SQLAlchemy文档中描述了此问题。如果不同的子类将共享同一个数据库表,则应使用 代码示例: class Thing(db.Model): __tablename__ = 'thing' id = d

我有一个模型
东西
和一个模型
动作
。在
事物
s和
动作
s之间存在一对多关系。但是,我希望能够将
Action
子类化,以便(例如)
BuildAction
HealAction
BloodyStupidAction
。是否可以使用Flask SQLAlchemy来执行此操作并维护单对多关系?

下的SQLAlchemy文档中描述了此问题。如果不同的子类将共享同一个数据库表,则应使用

代码示例:

class Thing(db.Model):
    __tablename__ = 'thing'
    id = db.Column(db.Integer, primary_key=True)
    actions = db.relationship('Action', backref=db.backref('thing'))

class Action(db.Model):
    __tablename__ = 'action'
    id = db.Column(db.Integer, primary_key=True)
    thing_id = db.Column(db.Integer, db.ForeignKey('thing.id'))
    discriminator = db.Column('type', db.String(50))
    __mapper_args__ = {'polymorphic_on': discriminator}

class BuildAction(Action):
    __mapper_args__ = {'polymorphic_identity': 'build_action'}
    time_required = db.Column(db.Integer)
Action
的每个子类都应该继承父类中定义的
thing
关系。
action.type
列描述了表中每行表示的子类操作