【问题标题】:How to print the string value of a choices field如何打印选择字段的字符串值
【发布时间】:2020-01-02 17:28:16
【问题描述】:

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

    是的,你可以使用get_<i>fieldname</i>_display [Django-doc]

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

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

    {{ blog.<b>get_status_display</b> }}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-31
      • 2013-08-12
      相关资源
      最近更新 更多