Python 插入期间未在sqlalchemy中填写多态_on-column
如果我有这样的层次结构和模型定义:Python 插入期间未在sqlalchemy中填写多态_on-column,python,sqlalchemy,Python,Sqlalchemy,如果我有这样的层次结构和模型定义: class Company(Base): __tablename__ = "company" company_id = Column(Integer, primary_key=True) company_name = Column(Text) employees = relationship("Employee") class Employee(Base): __tablename__ = "employee"
class Company(Base):
__tablename__ = "company"
company_id = Column(Integer, primary_key=True)
company_name = Column(Text)
employees = relationship("Employee")
class Employee(Base):
__tablename__ = "employee"
employee_id = Column(Integer, primary_key=True)
company_id = Column(Integer, ForeignKey("company.company_id"))
position = Column(Text)
__mapper_args__ = {"polymorphic_on": position, 'polymorphic_identity':'employee'}
class Manager(Employee, ConcreteBase):
__tablename__ = "manager"
employee_id = Column(Integer, ForeignKey("employee.employee_id"), primary_key=True)
fancy_title = Column(Text)
__mapper_args__ = {"polymorphic_identity": "Manager"}
然后我插入一个管理器
,如下所示:
ceo = Manager(fancy_title="CEO")
big_inc = Company(company_name="Big Inc.", employees=[ceo])
session.add(big_inc)
session.commit()
当我查看员工
-表时,职位
字段未填写为什么?
companydb=# SELECT * FROM employee;
employee_id | company_id | position
-------------+------------+----------
1 | 1 |
(1 row)
我希望它会说:
companydb=# SELECT * FROM employee;
employee_id | company_id | position
-------------+------------+----------
1 | 1 | Manager
(1 row)
像以前一样多次回答我自己的问题:
class Manager(Employee, ConcreteBase):
不应包含ConcreteBase
class Manager(Employee):
显然,因为这对孩子来说没有任何意义