我有两个简单的模型:书籍和作者
每本书都有一个作者,通过外键链接。
一切正常,直到我尝试在注释上使用 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
它已经完全丢失了额外的信息。怎么回事?
最佳答案
好吧,这似乎是一个错误。已经有 a ticket ,但它已经有一段时间没有受到太多关注了。可能值得向 django-developers Google 小组发帖以插入事情进展。
关于python - 是否可以在 django 1.2.1 中将注释与 defer/only 结合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3474728/