2017-12-16 11 views
0

例モデルの各choicefieldの合計数を取得する:Djangoのテンプレートに

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 

どうすればこの問題を解決できますか?

これまでのところ、私はテンプレートに次のように試してみました:

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

それは私に以下の出力が得られます。私の経験DTLに基づいて

PH 5 
OT 4 
+0

ソースコードを修正してください。構文強調表示には、見落とし見積もりが明確に示されています。あなたが私たちに示すコードが、あなたが求めている問題を正確に表すことを保証することは非常に重要です。 – Chris

+0

注意:Djangoには他にもエラーがありませんので、コードを入力して間違いがありますが、私が達成したい最終結果の解決策を探しています。 – TheEarlyMan

+1

あなたのコードがあなたが求めている問題を正確に表すことは非常に重要です。どのミスが関連しており、どのミスが無関係であるかをどのように知るべきですか?繰り返しますが、あなたの質問を編集して、それが含んでいるエラーを修正してください(少なくとも私が前に述べた引用があります)。 – Chris

答えて

0

はあなたにdictのキーにアクセスすることができますテンプレートのように:

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

他の解決策は、テンプレートタグを実装し、それに応じてそれを使用することです私が上記で提案した方法はよりエレガントで使いやすいです(IMHO)。希望すると助けてください

+0

あなたの提案によれば、テンプレートには何も表示されません。 – TheEarlyMan

関連する問題