首页 > 解决方案 > 如何打印选择字段的字符串值

问题描述

我有一个整数字段,它为博客文章提供 3 个选项:

class Post(models.Model):
    STATUS_DRAFT = 0
    STATUS_PUBLISHED = 1
    STATUS_DELETED = 2
    STATUS_CHOICES = (
        (STATUS_DRAFT, 'draft'),
        (STATUS_PUBLISHED, 'published'),
        (STATUS_DELETED, 'deleted'),
    )

    status = IntegerField(choices=STATUS_CHOICES, default=STATUS_DRAFT)

当我在模板中渲染它时,{{ blog.status }}它会打印整数值 ( 0, 1, 2)。如何调用它来打印字符串值(draft, published, deleted)?

标签: djangodjango-modelsdjango-templates

解决方案


是的,您可以使用[Django-doc]get_fieldname_display

对于已choices设置的每个字段,该对象将有一个get_FOO_display()方法,其中FOO是字段的名称。此方法返回字段的“人类可读”值。

在这种情况下,您可以通过以下方式实现它:

{{ blog.get_status_display }}

推荐阅读