Skip to content

Instantly share code, notes, and snippets.

@martync
Created April 29, 2013 09:10
Show Gist options
  • Save martync/5480544 to your computer and use it in GitHub Desktop.
Save martync/5480544 to your computer and use it in GitHub Desktop.
Django aggregation in template filters.
from django import template
from django.db.models import Sum, Avg, Max, Min, Count
register = template.Library()
@register.filter
def sum(queryset, field):
return queryset.aggregate(sum_value=Sum(field)).get('sum_value')
@register.filter
def avg(queryset, field):
return queryset.aggregate(avg_value=Avg(field)).get('avg_value')
@register.filter
def min(queryset, field):
return queryset.aggregate(min_value=Min(field)).get('min_value')
@register.filter
def max(queryset, field):
return queryset.aggregate(max_value=Max(field)).get('max_value')
@register.filter
def count(queryset, field):
return queryset.aggregate(count_value=Count(field)).get('count_value')
@BohdanSizomin
Copy link

How could I get these values inside the template?

@deepsen839
Copy link

{% if salary_advance.employee_advance_refund.all|sum:'refund_amount'|floatformat:2 < salary_advance.advance_amount|floatformat:2 %}
Refund Advance 
{% endif %}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment