【问题标题】:Django/Python: How to cast an integer into the equivalent enum string? [duplicate]Django/Python:如何将整数转换为等效的枚举字符串? [复制]
【发布时间】: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' 是一个字符串,而不是一个整数。

标签: python django


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    context.get_priority_display()
    

    【讨论】:

      猜你喜欢
      • 2012-04-30
      • 2011-10-26
      • 2012-01-03
      • 1970-01-01
      • 2010-10-07
      • 2015-09-30
      • 1970-01-01
      • 2017-05-01
      相关资源
      最近更新 更多