Python django过滤器和聚合函数

Python django过滤器和聚合函数,python,django,filter,aggregate,Python,Django,Filter,Aggregate,这是一个特定于应用程序的问题:,这里是一个简短的解释,供那些没有使用过它的人参考 f = ProductFilter(request.GET, queryset=Product.objects.all()) 这条线为我们做所有的过滤ProductFilter是一个类,我们已经用filters(类的形式)指定了它f是一个过滤器对象(基本上是我们要求的项目),其作用类似于列表 现在,我想在这个f对象上执行aggregate函数(比如Avg)。你对如何/如果能做到这一点有什么想法吗 你的意思是这样的

这是一个特定于应用程序的问题:,这里是一个简短的解释,供那些没有使用过它的人参考

f = ProductFilter(request.GET, queryset=Product.objects.all())
这条线为我们做所有的过滤
ProductFilter
是一个类,我们已经用filters(类的形式)指定了它
f
是一个过滤器对象(基本上是我们要求的项目),其作用类似于列表


现在,我想在这个
f
对象上执行
aggregate
函数(比如
Avg
)。你对如何/如果能做到这一点有什么想法吗

你的意思是这样的:

from django.db.models import Avg


class ProductFilter(django_filters.FilterSet):
    ...

    @property
    def avg(self):
        qs = super(ProductFilter, self).qs

        return qs.aggregate(Avg('price'))['id__avg']
因此,您要添加自己的筛选器属性,并在模板中使用它:

{{ filter.avg }}

你搞定了!又是Thx