使用 Elixir 0.7.1 和 SQLAlchemy 0.7.8,我创建了一个与自身具有多对多关系的模型,如下所示:
from elixir import *
class MyModel(Entity):
name = Field(Unicode(30))
related = ManyToMany('MyModel')
现在,如果我对这些有一些任意查询,请说
q1 = MyModel.query.filter(MyModel.name.like("%Bob%"))
然后,我想构建一个单独的查询,该查询将返回与q1
. 也就是说,如果我有
q1.all() == [m1, m2, m3]
然后我想要一个查询q2
(可能作为子查询),它将返回一个由、和q1
的并集组成的平面列表。如果我只是先执行然后下拉到 Python 列表操作其余部分,这很容易做到,但是当返回许多对象时似乎应该有更快的方法。关于如何做到这一点的任何想法?我是否应该在 Elixir 为多对多关系生成的中间表上使用某种连接?m1.related
m2.related
m3.related
q1
q1
谢谢!