示例型号:
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
根据我的经验,DTL使您能够在模板中访问dict键,如:
{% for src in source %}
PHONE: {{src.source}}
OTHERS: {{src.lead_source__count}}
{% endfor %}
其他解决方案是实现模板标签并相应地使用它,但我上面提出的方式更优雅和易于使用(恕我直言)。希望能帮助到你