我有两个简单的模型: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
它完全丢失了额外的信息。这是什么交易?