在SQLAlchemy中,您可以根据其关联记录的类型过滤多态关联模型吗?

时间:2011-02-18 00:29:38

标签: python sqlalchemy polymorphic-associations

我在SQLAlchemy中使用多态关联,如this example中所述。它也可以在SQLAlchemy源代码的examples目录中找到。

鉴于此设置,我想查询与Address s关联的所有User es。不是a user而是any user

在原始SQL中,我可以这样做:

select addresses.* from addresses 
join address_associations 
on addresses.assoc_id = address_associations.assoc_id
where address_associations.type = 'user'

有没有办法使用ORM会话?

我可以运行这个原始SQL,然后将Address类应用于结果中的每一行吗?

1 个答案:

答案 0 :(得分:2)

使用ORM的临时联接描述于:

http://www.sqlalchemy.org/docs/orm/tutorial.html#querying-with-joins

for address in sess.query(Address).join(Address.association).filter_by(type='users'):
    print "Street", address.street, "Member", address.member