是否有可能使用另一个QuerySet在QuerySet上执行子查询?使用QuerySet的Django子查询
例如:
q = Something.objects.filter(x=y).extra(where=query_set2)
是否有可能使用另一个QuerySet在QuerySet上执行子查询?使用QuerySet的Django子查询
例如:
q = Something.objects.filter(x=y).extra(where=query_set2)
简短的回答:不可以。extra
方法并不指望查询集在传递
如果你想想看一点,这是有道理的。查询集是用于表示数据库上的获取操作结果的抽象,并且是将数据库中的自定义字段附加到查询集的便捷方式。除非您将extra
的基本性质更改为“使用另一个查询集进行自定义筛选”,否则这将不起作用。
+1,一如既往,好的和教育的答案。 – 2010-09-23 10:19:37
我可以通过两种方式理解你的问题。
您可以在过滤器参数指定多个变量 ,为 例如:
q = Something.objects.filter(x=y, w=z)
你想使所谓SQL中的“连接”。这可以通过Django的聚合系统完成,请参阅官方Django Official Documentation。
你真的想在这里做什么?代码对我来说毫无意义。你真的想做'query_set2.filter(something__x = y)'吗? – 2010-09-22 13:02:42