Django 如何按分组并从每个组返回值?

Django 如何按分组并从每个组返回值?,django,django-views,django-orm,Django,Django Views,Django Orm,我有这样的桌子 id p_id number 1 1 12 2 1 13 3 2 14 4 2 15 如何在我的视图中获取这些项目, 我的意思是按p_id分组,并从组中获取数值 for p_id 1 returns count 2 and 12,13 for p_id 2 returns count 2 and 14,15 可以使用值和注释进行分组,以便: from django.db.models import Count pid_group = You

我有这样的桌子

id p_id number 
1   1   12 
2   1   13
3   2   14
4   2   15
如何在我的视图中获取这些项目, 我的意思是按p_id分组,并从组中获取数值

for p_id 1 returns count 2 and 12,13
for p_id 2 returns count 2 and 14,15
可以使用值和注释进行分组,以便:

from django.db.models import Count
pid_group = YourModel.objects.values('p_id').annotate(ncount=Count('number'))
之后,您将得到一个dicts pid_组列表,如下所示:

[{'p_id': 1, 'ncount': 2}, {'p_id': 2, 'ncount': 2}]
然后,您可以轻松获得数值:

for pid in pid_group:
    number_values = YourModel.objects.filter(p_id=pid.get('p_id'))

希望有帮助。

很好,但获取对象和进程并将其分组到内存中可能会更有效。