0

我有两个表,模式如下所示:

Table Auth:
 id: Integer, PrimaryKey
 type: String

Table Password_auth
 id: Integer, PrimaryKey, ForeignKey(Auth.id)
 password: String

我在 SQLAlchemy 中使用连接继承来表示其类中的上述两个表。我使用类型作为多态性的鉴别器。只要我不使用反射,这一切都可以正常工作。一旦我使用反射,所有的地狱都会崩溃。

可以在 SQLAlchemy 中使用多态连接继承和反射吗?如果是这样,有人愿意给我一个例子来说明它是如何完成的吗?

提前致谢。

4

1 回答 1

2

假设您使用的是declarativeextension,下面的代码应该会给您一个想法:

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',
            }
于 2012-08-03T08:27:33.733 回答