欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

aggregation and join

程序员文章站 2024-03-26 11:37:53
...

可以直接使用双下划线来获得所关联的object的属性

Store.objects.annotate(min_price=Min('books__price'), max_price=Max('books__price'))

Store.objects.aggregate(min_price=Min('books__price'), max_price=Max('books__price'))

Store.objects.aggregate(youngest_age=Min('books__authors__age'))

这样的话 django会把Store和Book通过多对多关系join。

此外,可以使用逆向的指定,例如book有指向publisher的ForeignKey,但是在publisher中也可以用

Publisher.objects.annotate(Count('book'))

此外many-to-many关系也适用