Django / Python:如何将整数转换为等效的枚举字符串?

时间:2012-12-01 16:43:48

标签: python django

  

可能重复:
  Django print choices value

在其中一个模型的Django中,我有以下枚举:

PRIORITY = (
        ('2',     _(u'High')),
        ('1',   _(u'Medium')),
        ('0',      _(u'Low')),
    )

priority = models.CharField(max_length=1, choices=PRIORITY, default='1')

当向模板发送优先级时,该值仍然是整数,这不是很好。我想用文字而不是数字显示优先级。

context = Context({'priority':self.priority})

在将优先级发送到模板之前,有没有办法将优先级转换为实际字符串而不使用任何if语句?

2 个答案:

答案 0 :(得分:5)

是的,根据the documentation,您可以获得这样的人类可读值:

context.get_priority_display()

答案 1 :(得分:-2)

左边的值是Django用于存储在db中的值。它不必是整数。只需使两个值相同:

PRIORITY = (
        ('high',     _(u'High')),
        ('Medium',   _(u'Medium')),
        ('Low',      _(u'Low')),
    )