作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Django 模型,在其中使用选择参数。对于选择,我使用 Python 枚举。现在我想在模板中显示选择显示值。我知道有 .get_fieldname_display
但在这种情况下它只返回键而不是显示值。
型号:
class LocalTitle(models.Model):
type = models.CharField(max_length=8, choices=[(tag, tag.value) for tag in LocalTitleCodes])
title = models.CharField(max_length=255)
枚举:
class LocalTitleCodes(Enum):
title_00 = 'Japanese'
title_01 = 'English'
title_02 = 'French'
因此,就我而言,如果我在模板中执行title.get_type_display
,它会返回title_00
,而不是日语
。如何获取显示值?
最佳答案
我认为问题更多的是tag
没有映射到title__00
,而是映射到LocalTitleCodes
对象.
您应该使用:
class LocalTitle(models.Model):
type = models.CharField(
max_length=8,
choices=[<b>(tag.name, tag.value)</b> for tag in LocalTitleCodes]
)
title = models.CharField(max_length=255)
由于 Django 无法找到相应的值,因此它会使用数据库中存储的值。
自:
>>> [(tag, tag.value) for tag in LocalTitleCodes]
[(<LocalTitleCodes.title_00: 'Japanese'>, 'Japanese'), (<LocalTitleCodes.title_01: 'English'>, 'English'), (<LocalTitleCodes.title_02: 'French'>, 'French')]
>>> [(tag.name, tag.value) for tag in LocalTitleCodes]
[('title_00', 'Japanese'), ('title_01', 'English'), ('title_02', 'French')]
关于django - 使用枚举作为选项获取选项显示值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53129963/
我是一名优秀的程序员,十分优秀!