【问题标题】:django-filter and aggregate functionsdjango-filter 和聚合函数
【发布时间】:2013-09-23 16:10:39
【问题描述】:

这是一个应用程序特定的问题:django-filter,这里为没有使用它的人做一个简单的解释。

f = ProductFilter(request.GET, queryset=Product.objects.all())

这一行为我们做了所有的过滤。 ProductFilter 是一个类,我们用过滤器指定(类似表单的类)。 f 是一个过滤器对象(基本上是我们要求的项目),其作用类似于列表。

现在,我想对这个f 对象执行aggregate 函数(例如Avg)。你有什么想法如何/是否可以实现?

【问题讨论】:

    标签: python django filter aggregate


    【解决方案1】:

    你的意思是这样的:

    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 }}
    

    【讨论】:

    • 你成功了!再次感谢
    猜你喜欢
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 2014-07-27
    • 2019-07-16
    • 1970-01-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多