是否可以添加由django ORM創建的加入語句的附加條件?在django中加入的附加條件
我需要在SQL什麼是
'SELECT "post"."id", COUNT("watchlist"."id") FROM "post"
LEFT OUTER JOIN "watchlist"
ON ("post"."id" = "watchlist"."post_id" AND "watchlist"."user_id" = 1)
WHERE "post"."id" = 123 GROUP BY …
在Django大部分是
Post.objects.annotate(Count('watchinglist')).get(pk=123)
但我怎麼能添加AND "watchlist"."user_id" = …
與Django的ORM JOIN條件?
將其添加到篩選器無法獲取在關注列表中沒有關聯對象的Post對象。
看起來它acually做同樣的事情作爲過濾器()。例如。如果沒有監視列表對象,則向WHERE添加一個參數,而不是ON,並因此提供空的結果。 – HoverHell 2010-07-25 12:05:39
但是,其實,好主意。我錯過了Count的'額外'參數。看起來像一個工程。 – HoverHell 2010-07-25 12:16:28
...或者可能不是。 「額外」似乎有不同的目的。 – HoverHell 2010-07-25 12:27:21