【发布时间】:2010-08-13 07:22:18
【问题描述】:
我有两个简单的模型:书和作者
每本书都有一个作者,通过外键链接。
在我尝试在注释上使用 defer/only 之前一切正常:
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
它已经完全丢失了额外的信息。有什么关系?
【问题讨论】:
标签: python django django-queryset