如何在我的HTML中添加Flask / WTForms SelectField?

时间:2017-05-18 18:34:58

标签: python flask flask-wtforms

我正在Flask应用中构建表单,并希望用户能够从<select>菜单中选择一个选项。

例如:

<select>
  <option>Banana</option>
  <option>Pineapple</option>
</select>

我目前的&#34; HTML&#34;这是

<form action="{{ url_for('contact') }}" method=post>
  {{ form.hidden_tag() }}

  {{ form.name.label }}
  {{ form.name }}

  {{ form.company.label }}
  {{ form.company }}

  {{ form.email.label }}
  {{ form.email }}

  {{ form.phone.label }}
  {{ form.phone }}

  {{ form.message.label }}
  {{ form.message }}

  {{ form.submit }}
</form>

此表单的我的Python类是:

class ContactForm(Form):
    partner_type = SelectField(
        u'Industry Type',
        choices = [('Software', 'software'), ('Sales', 'sales')]
    )
    name = TextField("Name", [validators.Required("Please enter your full name.")])
    email = TextField("Email", [validators.Required("Please enter a valid email i.e. you@yourdomain.com"), validators.Email()])
    phone = TextField("Phone", [validators.Required("Please enter a valid phone number.")])
    company = TextField("Company", [validators.Required("Please enter your company name.")])
    message = TextAreaField("Message", [validators.Required("Please include a message regarding this submission.")])
    submit = SubmitField("Send")

这一切都适用于文本字段和提交按钮,但我似乎无法弄清楚如何正确呈现表单的<select>选项。我尝试按照上面的语法执行:

{{ form.industry_type.label }}
{{ form.industry_type }}

但那并没有奏效。它只是添加了标签而没有下拉选择器。有没有正确的方法将其添加到DOM?选项是静态的预设选项,因此我试图呈现的列表没有动态或复杂。

感谢您的帮助。我是Python的新手,所以我还在想很多东西。

1 个答案:

答案 0 :(得分:1)

您应该使用:

{{ form.partner_type.label }}
{{ form.partner_type }}

而不是:

{{ form.industry_type.label }}
{{ form.industry_type }}

表单中的字段名称是它所分配的变量名称,而不是SelectField的构造函数中的标签。