Anda juga dapat menggunakan regrouptag template untuk dikelompokkan berdasarkan atribut. Dari dokumen:
cities = [
{'name': 'Mumbai', 'population': '19,000,000', 'country': 'India'},
{'name': 'Calcutta', 'population': '15,000,000', 'country': 'India'},
{'name': 'New York', 'population': '20,000,000', 'country': 'USA'},
{'name': 'Chicago', 'population': '7,000,000', 'country': 'USA'},
{'name': 'Tokyo', 'population': '33,000,000', 'country': 'Japan'},
]
...
{% regroup cities by country as country_list %}
<ul>
{% for country in country_list %}
<li>{{ country.grouper }}
<ul>
{% for city in country.list %}
<li>{{ city.name }}: {{ city.population }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
Terlihat seperti ini:
- India
- Mumbai: 19.000.000
- Kalkuta: 15.000.000
- Amerika Serikat
- New York: 20.000.000
- Chicago: 7.000.000
- Jepang
Ini juga berfungsi pada QuerySets saya percaya.
sumber: https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#regroup
sunting: perhatikan bahwa regrouptag tidak berfungsi seperti yang Anda harapkan jika daftar kamus Anda tidak diurutkan kunci. Ini bekerja berulang. Jadi, sortir daftar Anda (atau set kueri) dengan kunci kerapu sebelum meneruskannya ke regrouptag.
Members.objects.filter(date=some_date).values('designation').annotate(dcount=Count('designation'))