我正在尝试使用 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)
这条线是不可能的(不幸的是)。
我想知道是否有任何方法可以将多个多态身份分配给单个类。不幸的是,我在文档中找不到任何这样的例子。