python - 如何在 Jinja 模板中显示枚举成员的值?
问题描述
我的models.py中有这个类。
class Size(Enum):
ONE = 1
TWO = 2
在我的表单中,我希望为该字段预定义选项,这就是我使用 Enum 类的原因:
size = SelectField('Shoe size', choices=[(name, member.value) for name, member in ShoeSize.__members__.items()])
存储在数据库中的值为ONE,TWO等。在Jinja模板中显示时{{ shoe.size }}
,成员名称就是显示的内容。如何在我的 jinja 模板中显示成员值?
简而言之,我想要1
显示而不是ONE
. 类的repr函数会更好。
解决方案
您可以教您的模板关于您的课程:
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')
编辑:有人将此标记为我不理解的重复项,因为链接的答案没有回答 jinja2 模板问题
推荐阅读
- flutter - 使用 Firebase 收听 Stream 与 StreamBuilder 的结果不同
- kotlin - when 语句中的多个条件
- java - 我正在尝试使用 HC-05 模块制作一个通过蓝牙交换数据的应用程序
- android - 无法访问外部库中的本机文件 - android
- reactjs - React 使用 formState 创建两个 useForm
- logging - 添加某个响应标头时,IIS 停止记录所有响应标头
- python - 来自复杂数据的 Pandas 数据框
- c++ - 迁移到 Visual Studio 2019 后,我的生产代码停止编译
- css - 使用文件中的 CSS 样式化 AntD 模态
- sql - 需要哪些组件以及如何传输此查询以在 ODI 中使用?