gpt4 book ai didi

django - 使用枚举作为选项获取选项显示值

转载 作者:行者123 更新时间:2023-11-30 22:05:00 24 4
gpt4 key购买 nike

我有一个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com