代码之家  ›  专栏  ›  技术社区  ›  Eric O.

显示从数据库中获取的枚举类名称的值

  •  0
  • Eric O.  · 技术社区  · 7 年前

    我在我的模型.py.

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

    这是我的形式。我想要这个字段的预定义选项,这就是我使用枚举类的原因:

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

    数据库中存储的值是1,2。。。在jinja模板中显示时 {{ shoe.size }} ,则显示成员名称。如何在jinja模板中显示成员值? 简而言之,我想要 1 ONE . A 代表

    0 回复  |  直到 7 年前
        1
  •  3
  •   booleys1012    7 年前

    你可以教你的课程模板:

    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')
    

        2
  •  0
  •   Eric O.    7 年前

    从 @博利1012 回答,我有更好的洞察力。我只需要存储值而不是名称: 所以我在视图文件中导入了Size类:

    from app.models import Size
    

    shoe = Shoe(size = Size[form.size.data].value)
    
    推荐文章