首页 > 解决方案 > 如何计算字典中的项目并根据项目 ID 过滤?

问题描述

我正在查询以下使用来自 Django contrib auth 的用户和组的字典:

views.py我将以下内容作为上下文传递给模板:

group_user_dict = {group: group.user_set.all() for 
    group in Group.objects.all().order_by('id')}

然后很容易遍历所有项目:

{% for group, users in group_user_dict.items %}
   {{ group.id }}: {{ group.name }}
   {% for i in users %} 
       {{ i.get_full_name }} 
   {% endfor %}
{% endfor %}

但是,我怎么能:

  1. 计算每个组中的用户数并将其显示在模板中吗?例如{{ group.users_set.count() }}

  2. 只显示第一、第二、第三(等等)组的结果?例如Group 1 ID, Group 1 name: Users in group 1 only

标签: pythondjangodjango-templatesdjango-views

解决方案


尝试{{ users.count }}第一个问题。

例如,对于显示组 2 中的用户,它将是{{ for user_of_group_2 in group_user_dict.values.1 }}.

对于计算组列表,它将是{{ group_user_dict.keys|length }}.

如果您有不明白的地方,请随时提问。


推荐阅读