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#)

如何将任何给定的 SQL/HQL 选择查询动态转换为等效计数查询?

将整数转换为 base36

如何将 MySQL 查询转换为等效的 Oracle sql 查询