django 外键通过 where 子句进行聚合

发布于 2024-11-25 03:48:57 字数 304 浏览 0 评论 0原文

我在 Django 中注释我的查询集,使用另一个表映射中的值。

    lw_list = lw_list.annotate(count_mapping=Count('mapping'))

(lw 对象与映射对象具有一对多关系)

所以现在我的 lw 列表中的每个对象都有相关映射对象的计数。 我的映射对象有一个布尔字段“pass_fail”

是否可以在映射表上放置一个 where 子句,以便聚合仅计算“pass_fail”值设置为 true 的映射对象?

你如何做到这一点?

I am annotating my queryset in Django, using values from another table mapping as so.

    lw_list = lw_list.annotate(count_mapping=Count('mapping'))

(lw objects have a one to many relationship with the mapping objects)

So now each object in my lw list has a count of related mapping objects.
My mapping objects have a boolean field 'pass_fail'

Is it possible to put a where clause on the mapping table, so that the aggreagte only counts mapping objects that have a "pass_fail" value set to true?

How do you do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白云不回头 2024-12-02 03:48:57

我认为目前还不能使用 Django 的 ORM 来完成此操作 - 这是一张非常活跃的票 关于你想要什么,这是一个漂亮的那里有人建议的黑客解决方法。我想说你现在最好的选择是使用原始 SQL。

I don't think this can be done using Django's ORM as of now -- here's a pretty active ticket about what you want, and here's a pretty hackish workaround suggested by someone in there. I'd say your best bet would be to use raw SQL for now.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文