Backend/Django

[Django] ORM count

lim.dev 2022. 8. 4. 01:58

aws rds(mysql), rest api 사용중입니다!

 

image 테이블에 있는 (특정 유저가 올린) kind필드의 값 별로 갯수를 반환하는 코드입니다!

kinds = image.objects.filter(user_id=user_id).values('kind').annotate(cnt=Count('kind'))
serializer = StatisticsSerializer(kinds, many=True)
return Response(serializer.data)

Serializer 만들기~~

class StatisticsSerializer(serializers.Serializer):
    kind = serializers.SerializerMethodField()
    cnt = serializers.SerializerMethodField()

    class Meta:
        model = image
        fields = '__all__'

    def get_kind(self, model_instance):
        return model_instance['kind']

    def get_cnt(self, model_instance):
        return model_instance['cnt']

반환되는 형식입니다!