2012-12-01 38 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')), 
    )