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

问题描述 投票:0回答:1

示例型号:

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

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

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

它给了我以下输出:

PH 5
OT 4
django django-models django-templates
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.