没有实例的get_%field%_display

时间:2019-03-14 07:06:40

标签: django

我有这样的模特

class Item(models.Model):
    STATUS_VALID = 1
    STATUS_INVALID = 2
    STATUS_UNKNOWN = 3

    STATUS_CHOICES = (
        (STATUS_VALID, _("Valid")),
        (STATUS_INVALID, _("Invalid")),
        (STATUS_UNKNOWN, _("Unknown")),
    )

    status = models.PositiveSmallIntegerField(choices=STATUS_CHOICES, default=STATUS_UNKNOWN)

我已经知道我可以使用instance.get_status_display()来获取实例的字符串值,但是如何在没有实例的情况下获取该值,我的意思是这样的

Item.get_status_display(Item.STATUS_VALID)

1 个答案:

答案 0 :(得分:2)

如我所见,简单的方法是:将STATUS_CHOICES转换为dict并获取值,例如:

dict(Item.STATUS_CHOICES).get(Item.STATUS_VALID)