Django获取模板中每个选择字段的总数

时间:2017-12-16 14:52:55

标签: django django-models django-templates

示例模型:

perf report

通过使用以下查询集,我可以获得Model选项中每个项目的总数:

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

它给了我以下输出:

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

以下是我想在模板中显示的内容:

<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 %}

1 个答案:

答案 0 :(得分:0)

根据我的经验,DTL使您能够在模板中访问dict键,如:

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

其他解决方案是实现模板标签并相应地使用它,但我上面提出的方式更优雅和易于使用(恕我直言)。希望它有所帮助