小编Dan*_* S.的帖子

一个类的多个身份的 SQLAlchemy 多态

我正在尝试使用 SQLAlchemy 实现单表继承。根据官方的 SQLAlchemy 文档(此处:official docs),分配单个多态身份的方法如下:

class Employee(Base):
    __tablename__ = 'employee'
    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    type = Column(String(50))

    __mapper_args__ = {
        'polymorphic_identity':'employee',
        'polymorphic_on':type
    }
Run Code Online (Sandbox Code Playgroud)

我想为一个班级分配多个身份。例如:

 class Employee(Base):
    __tablename__ = 'employee'
    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    type = Column(String(50))

    __mapper_args__ = {
        'polymorphic_identity':'employee',
        'polymorphic_on':type
    }

class Manager(Employee):
    manager_name = Column(String(30))

    company_id = Column(ForeignKey('company.id'))
    company = relationship("Company", back_populates="managers")

    __mapper_args__ = {
        'polymorphic_identity': ['manager', 'ceo'], 
    }
Run Code Online (Sandbox Code Playgroud)

请注意以下行:

'polymorphic_identity': ['manager', 'ceo']
Run Code Online (Sandbox Code Playgroud)

这条线是不可能的(不幸的是)。

我想知道是否有任何方法可以将多个多态身份分配给单个类。不幸的是,我在文档中找不到任何这样的例子。

python sqlalchemy python-3.x

5
推荐指数
2
解决办法
3113
查看次数

标签 统计

python ×1

python-3.x ×1

sqlalchemy ×1