Python+SqlAlchemy'init',具有单个表inheritan

2024-04-24 08:05:45 发布

您现在位置:Python中文网/ 问答频道 /正文

一个SQL炼金术的问题。在

我已经定义了我的数据库,相关部分如下。。。在

class Person(Base):
    __tablename__ = 'PERSON'
    #
    id = Column(Integer, primary_key=True)
    person_type = Column(String(32), nullable=False)
    name = Column(String(50))
    address = Column(String(120))
    phonenum = Column(String(20))
    __mapper_args__ = {'polymorphic_on':person_type}

#

class Student(Person):
    __mapper_args__ = {'polymorphic_identity': 'Student'}
    dob = Column(Date)

我还有“Person”的其他子类。我对“init”的外观有问题。我最后一次尝试是。。在

对于“人”。。在

^{pr2}$

对于“学生”。。在

def __init__ (self, a_name, a_address,a_phonenum, a_dob=None, a_stud_caregiver_id=None, a_person_type = 'Student'):
    self.name = a_name
    self.address = a_address
    self.phonenum = a_phonenum
    self.dob = a_dob
    self.stud_caregiver_id = a_stud_caregiver_id
    self.person_type = a_person_type
  • 不过,虽然这可以创建数据库,但当我开始“初始化”我的学生时,我得到的信息大致是。。。在

在sqlalchemy.exc.InvalidRequestError:一个或多个映射器未能初始化-无法继续初始化其他映射器。原始异常为:应为类对象,但得到的是“Table('PERSON”),元数据(bind=None)。。。。在

我尝试过使用/不使用person_类型参数。。但实际上,我只是在黑暗中拍摄。在

我显然做了些蠢事,但又怎样?谢谢!在


Tags: nameselfnoneidstringaddresstypecolumn