0
考虑一个标签数组,T。django conjunctive filter __in查询
每个PhotoSet都有与标签的多对多关系。
我们也有一个过滤器,F(由一组标签的),我们想返回谁已包含在F.
即所有标签全部的photosets ,.如果F = [ '绿色', '狗', '猫'],我们希望有所有在F.
标签每PhotoSet例如自然
不会做的伎俩,因为它返回每 PhotoSet包含F.
我看到它可以利用“Q”表达式中使用类似的事情的任何成员,但似乎只针对合取参数数量是有限的。这是否可以使用列表理解来完成?
在此先感谢!
编辑 - 解决方案:
我发现解决方案使用一种明显的方式。简单地链接过滤器...
results = PhotoSets.objects
for f in F:
results = results.filter(tags__in=[f])
results = results.all()
盯着我整个时间!
感谢您的答复。如果我想出的解决方案不起作用,我会尝试。哪个顺便说一下,你知道哪种方法最有效吗? – 2012-02-20 22:37:56
它们的效率应该相当。无论哪种方式,数据库实际上只被击中一次,查询应该大致相同。 – 2012-02-20 22:41:57