【发布时间】:2014-10-08 03:37:11
【问题描述】:
我有一个带有 Books 的 QuerySet,我想在每个 Book 结果中添加一个 score 字段。
qs = Book.objects.all()
在原始 SQL 中我会写:
SELECT
*,
(
(SELECT COUNT(*) FROM votes WHERE value=1 AND book=b.id) -
(SELECT COUNT(*) FROM votes WHERE value=-1 AND book=b.id)
) AS score
FROM
Book b;
如何在 Django 中实现它?我试过annotate(),但它似乎不适合这种东西。
【问题讨论】:
-
将
annotate或extra与select一起使用(在此处提问之前请更仔细地使用google)。 -
谷歌中没有一个页面可以描述我想要的。我已经在文档中阅读了有关
annotate和extra的所有内容。对此它只字未提。如果您设法找到任何有用的东西,请分享一个链接。 -
@ambi 如何在这里过滤任何帮助?
标签: python sql django django-models