python - 是否可以在 django 1.2.1 中将注释与 defer/only 结合使用?

标签 python django django-queryset

我有两个简单的模型:书籍和作者

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

一切正常,直到我尝试在注释上使用 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/

相关文章:

python - 在 centos 上为 python 从源代码安装 opencv

python - 为什么在 __init__ 之外定义一个对象变量不受欢迎?

python - 根据分组变量从文件加载列表列表?

django - 从具有不同数量值的列表中进行查询

python - 在 Django 中,我如何在单个查询中根据不同的字段值获取总行数?

python - 如何在 Django 应用程序中对访问次数进行排序?

python - 如何修复表 x 没有名为 y 的列?

django - 向管理界面上的 Django 内联对象添加自定义操作

javascript - 在 django 模板中调用 javascript 文件

python - 如何创建一个包含两个列表的字典,以最少的查询次数保留第一个列表的顺序?