使用QuerySet的Django子查询

epo*_*och 3 python database django orm

是否可以使用另一个QuerySet在QuerySet上执行子查询?

例如:

q = Something.objects.filter(x=y).extra(where=query_set2)
Run Code Online (Sandbox Code Playgroud)

Man*_*dan 6

简短的回答:不是.extra方法不希望查询集的传递.

如果你考虑一下,这是有道理的.查询集是一种抽象,用于表示数据库上的提取操作的结果,是将数据库extra中的自定义字段附加到查询集的便捷方式.除非您将基本性质更改为extra"使用其他查询集进行自定义筛选",否则这将无效.