【问题标题】:WTForms - how to display SelectField Choice's Label without rendering the SelectFieldWTForms - 如何在不呈现 SelectField 的情况下显示 SelectField Choice 的标签
【发布时间】:2021-07-17 22:49:15
【问题描述】:

我有一种情况,我想只显示表单字段的“数据”(不呈现为字段类型)。

通过使用字段的 .data 属性,这通常是微不足道的,但我看不到如何为 SelectField 执行此操作,我想显示选择的标签而不是其数据。

简单示例:

class testform(Form)
  name = StringField()
  fruit = SelectField(choices=[('1','Lemon'),('2','Lime')])

myform = testform(name='foo', fruit='2')


#in template
{{myform.name.data}} &nbsp {{myform.fruit.data}}

这显示 foo 2 但我想显示 foo Lime

似乎没有办法引用fruit.data.label

如果我使用外部枚举,这会很容易,但在这种情况下,SelectField IS 是枚举,所以我有点卡住了。

任何想法如何获取选择的标签?

【问题讨论】:

    标签: flask flask-wtforms wtforms


    【解决方案1】:

    您可以通过将类包装在带参数的函数中来填充表单

    def populate_testform(name_default_value, fruit_default_value):
        class testform(Form):
            name = StringField(default=name_default_value)
            fruit = SelectField(choices=[('1','Lemon'),('2','Lime')], default=fruit_default_value)
        return testform()
    
    
    myform = populate_testform('foo', '2')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-20
      • 2020-02-29
      • 1970-01-01
      • 2019-10-02
      • 2016-02-20
      • 2018-04-05
      • 1970-01-01
      • 2012-08-19
      相关资源
      最近更新 更多