gpt4 book ai didi

django - django的annotate()功能中过滤相关字段

转载 作者:行者123 更新时间:2023-12-03 07:10:14 26 4
gpt4 key购买 nike

Django 文档提供了 using annotate() to produce aggregate results 的示例基于 QuerySet 的相关字段(即,在 annotate() 中使用联接)。

文档中的一个简化示例是 Store.objects.annotate(min_price=Min('books__price')),其中 books 是 Store to Book 的 ManyToMany 字段,price 是一个字段本书。

继续这个例子,我如何生成一个带有注释的 Store 对象的 QuerySet,其价格不是商店中所有书籍的最低价格,而是仅针对包含“author='William Shakespeare'”的书籍?换句话说,如何过滤用于计算聚合的相关字段?

最佳答案

The documentation解释如何执行此操作:

Store.objects.filter(books__author='William Shakespeare').annotate(
min_price=Min('books__price'))

正如该链接所指出的,过滤器和注释的顺序在这里很重要 - 因为您只想计算与注释中的过滤器匹配的书籍,所以过滤器必须放在第一位。

关于django - django的annotate()功能中过滤相关字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3901627/

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