我有一个整数字段,为博客文章提供 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
)?
get_fieldname_display
[Django-doc]:
对于每个设置了
的字段,该对象都会有一个choices
方法,其中get_FOO_display()
是字段的名称。此方法返回字段的“人类可读”值。FOO
在这种情况下,您可以通过以下方式实现:
{{ blog.get_status_display }}