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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django获取模板中每个选择字段的总数相关的知识,希望对你有一定的参考价值。

示例型号:

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

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

以上是关于Django获取模板中每个选择字段的总数的主要内容,如果未能解决你的问题,请参考以下文章

Django:在模板中选择带有默认字段的选项

如何在渲染django模板时动态设置表单选择字段的初始值

如何从用户在 django 基本模板中创建的所有帖子中获取模型字段值的总和?

Django模板过滤2个多对多字段

django:为啥在模板中获取模型的 .id 字段很慢?

获取django模板中的字段类型