2011-02-26 2 views
2

"django 프로젝트에"change "라는 모델이 있는데"change_type "이라는 필드가 있습니다. change_type 필드에는 "move", "new", "edit"및 임의의 주어진 시간 동안 무작위로 추가되는 새로운 유형이 포함 된 여러 값이 있습니다. 현재 정상적인 장고 쿼리를 사용하여 변경 모델 내의 항목 그룹을 선택하고 있습니다.django에서 필드 유형별 데이터베이스 항목 계산하기

change_type 필드에있는 고유 항목을 확인하는 빠른 방법이 있습니까? 각 입력 유형의 수를 반환하는 빠른 방법이 있습니까?

답변

1

함께 퍼팅 :

occurrences = {} 
change_types = Change.objects.values_list('change_type', flat=True).distinct() 

for type in change_types: 
    occurrences[type] = Change.objects.filter(change_type=type).count() 
+0

화려한 대답. – Mark

3

솔루션을 찾은 후 정말 간단합니다.

Change.objects.all().values('change_type').distinct() 
+0

멋지다, 나는 그것을 좋아한다. –

0

이 훨씬 더 효과적으로 aggregation을 사용하여 구현 될 수

Change.objects.values('change_type').annotate(Count('change_‌​type'))

출력은 각각 change_type 대한 change_type__count 필드를 포함한다.

관련 문제