आप 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'))