在其中一个模型的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语句?
答案 0 :(得分:5)
是的,根据the documentation,您可以获得这样的人类可读值:
context.get_priority_display()
答案 1 :(得分:-2)
左边的值是Django用于存储在db中的值。它不必是整数。只需使两个值相同:
PRIORITY = (
('high', _(u'High')),
('Medium', _(u'Medium')),
('Low', _(u'Low')),
)