2011-02-10 77 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中遍历它们,将注释附加到来自未过滤列表的匹配对象。