是否有可能使用另一個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