在SQLAlchemy中,能否根据关联记录的类型过滤多态关联模型?
我在使用SQLAlchemy中的多态关联,具体可以参考这个例子。你也可以在SQLAlchemy的源代码中的示例目录找到相关内容。
在这样的设置下,我想查询所有与User
(用户)相关联的Address
(地址)。这里不是指某个特定的用户,而是指所有用户。
如果用原始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 个回答
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