遇到了 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 参数.. 但实际上,我只是在黑暗中拍摄。
我显然做了一些愚蠢的事情,但是什么?谢谢!