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'))
希望有帮助。很好,但获取对象和进程并将其分组到内存中可能会更有效。