2

私のモデル:

class Device(models.Model):
    build = models.CharField()
    name = models.CharField()

さまざまなビルドのオブジェクトの数を取得できるようにクエリセットを作成するにはどうすればよいですか。

たとえば、「ビルド 1」と「ビルド 2」の 2 つのビルドがある場合、次のような出力が必要です。

build 1 = 3
build 2 = 4

編集:次のことを試しました:

Device.objects.values('build').annotate(count=Count('pk'))

出力は次のとおりです。

[{'build': u'wed build'}, {'build': u'red build'}, ... ]
4

2 に答える 2

9
from django.db.models import Count

Device.objects.values('build').annotate(count=Count('pk'))
# -> [{'build': '1', 'count': 3}, {'build': '2', 'count': 4}]
于 2012-11-04T12:58:14.497 に答える
4

A simple approach is just calling count:

>>> Device.objects.filter(build='1').count()
3
>>> Device.objects.filter(build='2').count()
4
于 2012-11-04T14:04:01.767 に答える