2017-12-16 10 views
0

예 모델 각 choicefield의 총 수를 얻을 :장고 템플릿에

Test.objects.values('source').annotate(Count('source')) 

그것을 : 나는 다음의 검색어를 사용하여 모델 선택의 각 항목의 총 수를 얻을 수 있어요

SOURCE_CHOICES = (
    'PH': 'PHONE', 
    'OT': 'OTHERS 
) 
class Test(models.Model): 
    source = models.CharField(..., choices=SOURCE_CHOICES) 

을 나에게 다음과 같은 출력 제공 : 아래

<QuerySet [{'source': 'PH', 'lead_source__count': 5}, {'lead_source': 'OT', 'lead_source__count': 4}]> 

것은 내가 템플릿에 표시 할 것입니다 :

Phone: 5 
Others: 4 

어떻게하면됩니까? 내 경험 DTL을 바탕으로

PH 5 
OT 4 
+0

소스 코드를 수정하십시오. 구문 강조 표시는 누락 된 견적을 명확하게 보여줍니다. 여러분이 우리에게 보여준 코드가 여러분이 궁금해하는 문제를 정확히 나타내는 지 확인하는 것은 매우 중요합니다. – Chris

+0

참고 사항 : 장고가 던진 다른 오류는 없으므로 실수가있을 수 있으므로 코드를 입력했지만 달성하고자하는 최종 결과에 대한 해결책을 찾고 있습니다. – TheEarlyMan

+1

코드에서 묻는 문제를 정확하게 나타내는 것은 매우 중요합니다. 어떤 실수가 관련이 있고 어떤 것이 관련이 없는지 어떻게 알 수 있습니까? 다시 말하지만, 질문을 편집하고 그것이 포함하고있는 모든 오류를 수정하십시오 (적어도 앞서 언급 한 견적이 있습니다). – Chris

답변

0

당신에게로 DICT 키에 액세스 할 수있는 기능을 제공합니다 :

{% for src in source %} 
    {% for k, v in src.items %} 
    {{v}} 
    {% endfor %} 
{% endfor %} 

그것은 나에게 아래의 출력을 제공 :

지금까지 내가 템플릿에 다음을 시도 같은 템플릿 :

{% for src in source %} 
    PHONE: {{src.source}} 
    OTHERS: {{src.lead_source__count}} 
{% endfor %} 

다른 해결책은 템플릿 태그를 구현하고 그에 따라 사용하는 것이지만, 위에서 제안한 e 방법은 더 우아하고 사용하기 쉽습니다 (IMHO). 도움이 되었기 바랍니다.

+0

당신의 제안에 따라, 아무것도 템플릿에 전혀 나타나지 않습니다. – TheEarlyMan

관련 문제