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 パラメーターを使用して/使用せずに試してみましたが、実際には、暗闇で撮影しているだけです。
私は明らかにばかげたことをしましたが、何ですか?ありがとう!