我有两个表,模式看起来像这样:
Table Auth:
id: Integer, PrimaryKey
type: String
Table Password_auth
id: Integer, PrimaryKey, ForeignKey(Auth.id)
password: String
我在SQLAlchemy中使用join继承来表示它们的类中的上述两个表。我使用类型作为多态性的鉴别器。只要我不使用反射,这一切都很好。一旦我使用反射,所有地狱都会崩溃。
可以在SQLAlchemy中使用带有反射的多态连接继承吗?如果是这样的话,有人会在给我一个如何完成它的例子吗?
提前致谢。
答案 0 :(得分:2)
假设您使用的是declarative
extension,下面的代码应该会给您一个想法:
class Auth(Base):
__table__ = Table('Auth', Base.metadata,
autoload=True,
autoload_with=engine)
__mapper_args__ = {
'polymorphic_on': 'type',
'polymorphic_identity': 'auth',
}
class Password_Auth(Auth):
__table__ = Table('Password_Auth', Base.metadata,
autoload=True,
autoload_with=engine)
__mapper_args__ = {
'polymorphic_identity': 'password_auth',
}