【问题标题】:WTForms Flask(wtf_flask) validators how to include "required" attribute for RadioFieldWTForms Flask(wtf_flask) 验证器如何包含 RadioField 的“必需”属性
【发布时间】:2019-03-23 12:39:43
【问题描述】:

我基本上要寻找的是用于 WTForms 的 InputRequired() 的 RadioField 等效验证器。我的意思是当您尝试提交表单而不在具有InputRequired() 验证器的StringField 字段中输入任何文本时,用户会在文本字段上方收到提示"Please fill out this field"。我希望用户必须选择malefemale

这很容易在 HTML 表单中完成,只需在 HTML 表单中包含 required 属性即可。但我似乎无法理解 RadioField 的 WTForms 中的等价物是什么。 InputRequired()DataRequired() 都只用于输入文本字段,似乎不适用于任何其他类型的字段。

如果我有以下非常简单的 WTForms 注册表单类,InputRequired() 在这种情况下效果很好,因为如果用户忘记输入namesurname,它会给用户提示"Please fill out this field"。除非他们在这些字段中提供输入,否则表单不会提交。

class Signup(FlaskForm):
name = StringField('First Name', validators=[InputRequired()])
surname = StringField('Last Name', validators=[InputRequired()])
submit = SubmitField('Signup')

但是,如果我有下面的带有 RadioField 的表单,强制用户选择 MaleFemale 的等效验证器是什么,如果他们不选择一个,我想给出提示 "please fill out this field"? (我正在使用 BootStrap)我似乎找不到任何关于它的信息。它存在吗? This 第二个答案中的问题基本上有我正在寻找的 Required="Required" 但自 2018 年 6 月以来已过时。我尝试了几乎所有方法来尝试使用 InputRequired()DataRequired() 和 @ 987654341@ 但没有成功。

class StudentPersonalQs(FlaskForm):
gender = RadioField('Gender', choices = [('Male','Male'),('Female','Female')])
age = SelectField('Age', choices = [('12', '12'), ('13', '14'),('15', '15'), ('16', '16'),('17', '17'), ('18+', '18+')])
submit = SubmitField('Signup')

【问题讨论】:

    标签: python flask flask-wtforms wtforms


    【解决方案1】:

    IMO,您目前只能使用这种方式来实现:

    {% for subfield in form.age %}
        <tr>
            <td>{{ subfield(required="required") }}</td>
            <td>{{ subfield.label }}</td>
        </tr>
    {% endfor %}
    

    【讨论】:

      猜你喜欢
      • 2018-11-21
      • 2017-02-03
      • 2019-04-05
      • 2021-12-09
      • 1970-01-01
      • 2014-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多