如何打印选择字段的字符串值

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

我有一个整数字段,为博客文章提供 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
)?

django django-models django-templates
1个回答
6
投票

是的,您可以使用

get_fieldname_display
 [Django-doc]:

对于每个设置了

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

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

{{ blog.get_status_display }}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.