SQLAlchemy with_polymorhpic和mixins

时间:2014-01-07 09:58:41

标签: python sqlalchemy polymorphism mixins

我有以下类层次结构(使用具有声明性基础的SQLAlchemy):

class Item(DeclarativeBase):
    name = Column(String(30))


class DetailsMixin(object):
    details = Column(String(300))

class AItem(Item):
    ...

class BItem(Item, DetailsMixin):
    ...

class CItem(Item, DetailsMixin):
    ...

class Something(DeclarativeBase, DetailsMixin)
    ...

是否可以使用with_polymorhpic获取所有项目并加载details列(如果存在),但是没有明确命名继承DetailsMixin的类的名称?

1 个答案:

答案 0 :(得分:0)

with_polymorphic(base = Item, classes = '*')

将加载从Item继承的所有类,至少在评估__mapper__参数时可见。因此,继承mixin的类将作为其实际类加载,因此具有它们的混合列。

如果您正在询问如何根据mixin列执行查询而无需明确命名从DetailsMixin继承的类,那么我仍然需要弄清楚我。但澄清你的问题可能有助于解答。