如何在 Jinja 模板中显示 Enum 成员的值?

Eri*_* O. 5 python enums jinja2 flask

我的 models.py 中有这个类。

class Size(Enum):
    ONE = 1
    TWO = 2
Run Code Online (Sandbox Code Playgroud)

在我的表单中,我想要该字段的预定义选择,这就是我使用 Enum 类的原因:

size = SelectField('Shoe size', choices=[(name, member.value) for name, member in ShoeSize.__members__.items()])
Run Code Online (Sandbox Code Playgroud)

数据库中存储的值为 ONE、TWO 等。在 Jinja 模板中显示时{{ shoe.size }},显示的是成员名称。如何在我的 jinja 模板中显示成员值?

简而言之,我想要1显示而不是ONE。类的 repr 函数会更好

boo*_*012 8

您可以教授有关您的课程的模板:

from enum import Enum
from jinja2 import Template

class Size(Enum):
  ONE = 1
  TWO = 2

template = Template('{{ Size[db_value].value }} == {{ db_value }}')
template.globals['Size'] = Size

template.render(db_value='ONE')
Run Code Online (Sandbox Code Playgroud)

编辑:有人将此标记为重复,我不明白,因为链接的答案没有回答 jinja2 模板问题