WTForms Flask(wtf_flask)验证器如何为RadioField包含“required”属性

问题描述 投票:2回答:1

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

只需在HTML表单中包含required属性,即可在HTML表单中轻松完成此操作。但我似乎无法理解WTF中对于RadioField的等价物。 InputRequired()DataRequired()都只是输入文本字段,似乎不适用于任何其他类型的字段。

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

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()RadioField但没有成功。

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个回答
0
投票

IMO,你现在只能用这种方式实现这个目标:

{% for subfield in form.age %}
    <tr>
        <td>{{ subfield(required="required") }}</td>
        <td>{{ subfield.label }}</td>
    </tr>
{% endfor %}
© www.soinside.com 2019 - 2024. All rights reserved.