gpt4 book ai didi

python - 如何向 Django QuerySet 添加附加列

转载 作者:太空狗 更新时间:2023-10-29 17:52:55 29 4
gpt4 key购买 nike

我有一个包含 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(),但它似乎不适用于此类内容。

最佳答案

原始 SQL 不是唯一的方法。您可以使用 Value() 表达式(参见文档 here ):

from django.db.models import CharField, Value

MyModel.objects.all().annotate(mycolumn=Value('xxx', output_field=CharField()))

关于python - 如何向 Django QuerySet 添加附加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25308828/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com