ゆるふわめも

東京か京都にいます。

Python djangoでGroup byを用いて要素ごとのレコード数をカウントしてテンプレートに渡す

使いそうになったので.

ModelNameがモデルの名前, attribute_nameがgroup byを行いたいカラムの名前です.

from django.db.models import Count
target_data = ModelName.objects.all()
groupby_data = target_data.values('attribute_name').annotate(total=Count('attribute_name')).order_by('total')

カウントを行ったあとの total 属性にレコード数が含まれています.

詳しくは以下のドキュメントにて.

QuerySet API reference | Django documentation | Django