Django/Python:如何将整数转换为等效的枚举字符串? [复制]
Posted
技术标签:
【中文标题】Django/Python:如何将整数转换为等效的枚举字符串? [复制]【英文标题】:Django/Python: How to cast an integer into the equivalent enum string? [duplicate] 【发布时间】:2012-11-19 15:08:06 【问题描述】:可能重复: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 语句将优先级转换为实际字符串?
【问题讨论】:
技术上,'1'
是一个字符串,而不是一个整数。
【参考方案1】:
是的,根据the documentation,您可以获得这样的人类可读值:
context.get_priority_display()
【讨论】:
【参考方案2】:左边的值是 Django 用来存储在数据库中的值。它不必是整数。只需使两个值相同即可:
PRIORITY = (
('high', _(u'High')),
('Medium', _(u'Medium')),
('Low', _(u'Low')),
)
【讨论】:
以上是关于Django/Python:如何将整数转换为等效的枚举字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
将整数转换为其等效字符,其中 0 => a、1 => b 等
如何将 Python 变量转换为等效的 cobol 组变量?
如何将 gi-normous 整数(字符串格式)转换为十六进制格式? (C#)