2012-12-01 37 views
3

可能重复:
Django print choices valueDjango/Python:如何将一个整数转换为等价的枚举字符串?

在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}) 

有没有办法不使用任何优先转化为实际的字符串,如果把它发送到模板之前发言?

+2

从技术上讲,“1”是一个字符串而不是整数。 –

回答

5

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

context.get_priority_display() 
-2

左边的值是Django使用的数据库来存储值。它不一定是一个整数。只需使两个值相同即可:

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