我有以下python代码,它使用SQLAlchemy在MySQL数据库中创建多态结构。从超类实例化子类
class Animal(Base):
key = Column(Integer(), Sequence("My Counter" ,1 ,1), primary_key = True)
name = Column(String())
discriminator = Column('type',String())
__mapper_args__ = {'polymorphic_on':discriminator}
def __init__(self,key,name):
self.key = key
self.name = name
class Cat(Animal):
__tablename__ = 'cat'
__mapper_args__ = {'polymorphic_identity':'cat'}
def walk():
pass
class Dog(Animal):
__tablename__ = 'dog'
__mapper_args__ = {'polymorphic_identity':'dog'}
def walk():
pass
我在想,最好的办法就是进行加载,使得什么:
a = Animal(key=1)
c = a.create()
C现在将是一个猫或取决于它是什么类型的狗的对象。动物表具有此信息。
感谢
感谢您的帮助。 我明白了所有的工作。我只是希望我能够做到这样的事情: a =动物(1) 所以我不必每次都想写一个“session.query ...”。 – user1474424