2013-09-23 2 views
3

이것은 응용 프로그램 특정 질문입니다 : django-filter, 여기에 그것을 사용하지 않은 사람들에 대한 간략한 설명입니다.django-filter 및 aggregate 함수

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

이 줄은 우리를 위해 모든 필터링을 수행합니다. ProductFilter은 클래스이며 우리는 필터 (forms-similarke 클래스)로 지정했습니다. f은 목록과 비슷한 역할을하는 필터 개체 (기본적으로 우리가 요청한 항목)입니다.

이제이 f 개체에서 aggregate 함수 (예 : Avg)를 수행하고 싶습니다. 이것이 어떻게 달성 될 수 있는지/어떤 아이디어가 있습니까?

답변

4

은이 같은 뜻 :

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

당신은 그것을 못을 박았다! 다시 Thx – nutship

관련 문제