是否可以在django 1.2.1中将注释与延迟/仅组合起来?

时间:2010-08-13 07:22:18

标签: python django django-queryset

我有两个简单的模型:Book和Author

每本书都有一位作者,通过外键链接。

在我尝试使用defer / only on annotation之前,事情正常工作:

authors=Author.objects.all().annotate(bookcount=Count('books'))

有效。查询如下所示:

select table_author.name, table_author.birthday, COUNT(table_book.id) as bookcount 
from table_book left outer join table_author on table_author.id=table_book.author_id 
group by table_author.id

非常简单 - 从作者中选择所有内容,并另外选择书籍的数量。

但是,当我执行以下操作时,一切都会改变:

simple=authors.defer('birthday')

现在,简单查询如下所示:

select COUNT(table_book.id) as bookcount from table_book left outer join 
table_author on table_author.id=table_book.author_id group by table_author.id

它完全丢失了额外的信息。这是什么交易?

1 个答案:

答案 0 :(得分:1)

嗯,这似乎是一个错误。已经有a ticket,但它暂时没有引起太多关注。可能值得向django-developers Google团队发帖,以便与他们合作。