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)

「Person」の他のサブクラスもあります。「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: 1 つ以上のマッパーが初期化に失敗しました - 他のマッパーの初期化を続行できません。元の例外は次のとおりです: Class object expected, got 'Table('PERSON', MetaData(bind=None)....

person_type パラメーターを使用して/使用せずに試してみましたが、実際には、暗闇で撮影しているだけです。

私は明らかにばかげたことをしましたが、何ですか?ありがとう!

4

0 に答える 0