0

遇到了 Sqlalchemy 的问题。

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

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)

我也有“人”的其他子类。我对“init”的外观有疑问。我的最后一次尝试是..

对于“人”..

def __init__(self, a_name, a_address, a_phonenum, a_person_type = None):
    self.name = a_name
    self.address = a_address
    self.phonenum = a_phonenum

对于“学生”..

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', MetaData(bind=None)....

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

我显然做了一些愚蠢的事情,但是什么?谢谢!

4

0 回答 0