आप regroupटेम्प्लेट द्वारा समूह में टेम्प्लेट टैग का भी उपयोग कर सकते हैं । डॉक्स से:
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>
इस तरह दिखता है:
- भारत
- मुंबई: 19,000,000
- कलकत्ता: 15,000,000
- अमेरीका
- न्यूयॉर्क: 20,000,000
- शिकागो: 7,000,000
- जापान
यह भी QuerySetमुझे विश्वास है पर काम करता है।
स्रोत: https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#regroup
संपादित करें: ध्यान दें कि regroupटैग काम नहीं करता है क्योंकि आप इसकी अपेक्षा करेंगे यदि आपके शब्दकोशों की सूची कुंजी-क्रमबद्ध नहीं है। यह चलने का काम करता है। इसलिए regroupटैग को पास करने से पहले अपनी सूची (या क्वेरी सेट) को ग्रॉपर की कुंजी के आधार पर क्रमबद्ध करें ।
Members.objects.filter(date=some_date).values('designation').annotate(dcount=Count('designation'))