2011-02-10 85 views
0

使用註釋,例如下面的例子從Django文檔考慮一個模型和查詢: http://docs.djangoproject.com/en/dev/topics/db/aggregation/過濾註釋而不去除結果

Publisher.objects.filter(book__rating__gt=3.0).annotate(num_books=Count('book')) 

這個查詢的結果將僅包含符合過濾條件的對象(即book_rating大於3.0),並且這些對象已被註釋。但是如果我想查詢包含所有對象,但只有註釋與過濾器匹配的對象(或者例如用0註釋它們)?或者這甚至有可能?

回答

0

不,你不能這麼做 - 因爲這不是基礎SQL的工作原理。

我唯一能想到的是做兩個查詢,一個使用過濾器/註釋,一個不使用,然後在Python中遍歷它們,將註釋附加到來自未過濾列表的匹配對象。