Özelliklere regroup
göre gruplandırmak için şablon etiketini de kullanabilirsiniz . Dokümanlardan:
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>
Buna benzer:
- Hindistan
- Mumbai: 19.000.000
- Kalküta: 15.000.000
- Amerika Birleşik Devletleri
- New York: 20.000.000
- Chicago: 7.000.000
- Japonya
Ayrıca QuerySet
inanıyorum s üzerinde çalışır .
kaynak: https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#regroup
düzenleme: not regroup
etiketi yok sen sözlükleri listeniz anahtar sıralanmış değilse o beklediğiniz gibi çalışır. Yinelemeli olarak çalışır. Bu nedenle, regroup
etiketinizi geçirmeden önce listenizi (veya sorgu kümesini) gruplandırıcının anahtarına göre sıralayın .
Members.objects.filter(date=some_date).values('designation').annotate(dcount=Count('designation'))