Reputation: 51
I tried to use loop:
user_list = <QuerySet [<TableUsers: Jane>, <TableUsers: Kate>, <TableUsers: Jons>, <TableUsers: Jacob>, <TableUsers: Jane>, <TableUsers: Jons>, <TableUsers: Jane>]>
{% for user in user_list %}
{% if user.name == "Jane" %}
{{all_count_username_jane}} # this is all count user with name Jane
{{user.name}}
{% elif user.name == "Jons" %}
{{all_count_username_jons}} # this is all count user with name Jons
{{user.name}}
{% endif %}
{% endfor %}
How can I count all "Jane" and "Jons"?
Upvotes: 1
Views: 404
Reputation: 2110
If you used something like user_list = SomeModel.objects.all()
, you can replace it by something like
from django.db.models import Count
user_list = SomeModel.objects.values('name').annotate(count_names=Count('id'))
then also change your template codes to:
{% for user in user_list %}
{% if user.name == "Jane" %}
{{user.count_names}} # this is all count user with name Jane
{{user.name}}
{% elif user.name == "Jons" %}
{{user.count_names}} # this is all count user with name Jons
{{user.name}}
{% endif %}
{% endfor %}
Upvotes: 2