lists = ModelName.objects.values('type').annotate(count=Count('type'))
In html:
{% for list in lists %}
{{list.type}} - {{list.count}}<br/>
{% endfor %}
Test:
{{lists}}
//don't use forloop yet. This will tests if the above query produce data or it is empty
UPDATED:
def view_name(request):
lists = ModelName.objects.values_list('type', flat=True).distinct()
types = []
for list in lists:
type_count = ModelName.objects.filter(type=list.type).count()
types.append({'type': list.type, 'count': type_count})
return render(request, 'page.html', {
'types': types,
})
{% for type in types %}
{{type.type}} - {{type.count}}
{% endfor %}