python - WTForms Flask(wtf_flask) 验证器如何包含 RadioField 的“必需”属性
问题描述
我基本上在寻找的是InputRequired()
用于 WTForms 的 RadioField 等效验证器。我的意思是当您尝试提交表单而不在具有InputRequired()
验证器的 StringField 字段中输入任何文本时,用户会在文本字段上方收到提示"Please fill out this field"
。我希望用户必须选择male
或female
。
这很容易在 HTML 表单中完成,只需在 HTML 表单中包含required
属性即可。但我似乎无法理解 RadioField 的 WTForms 中的等价物是什么。InputRequired()
并且DataRequired()
都只用于输入文本字段,似乎不适用于任何其他类型的字段。
如果我有以下非常简单的 WTForms 注册表单类,InputRequired()
则在这种情况下效果很好,因为它会在用户"Please fill out this field"
忘记输入name
or时给出提示surname
。除非他们在这些字段中输入,否则表单将不会提交。
class Signup(FlaskForm):
name = StringField('First Name', validators=[InputRequired()])
surname = StringField('Last Name', validators=[InputRequired()])
submit = SubmitField('Signup')
但是,如果我有下面的带有 RadioField 的表单,那么强制用户选择的等效验证器是什么,Male
或者Female
如果他们不选择一个我想给出提示"please fill out this field"
?(我正在使用 BootStrap)我似乎找不到任何关于它的信息。它存在吗?第二个答案中的这个问题基本上有我正在寻找的东西,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')
解决方案
IMO,您目前只能使用这种方式来实现:
{% for subfield in form.age %}
<tr>
<td>{{ subfield(required="required") }}</td>
<td>{{ subfield.label }}</td>
</tr>
{% endfor %}
推荐阅读
- powershell - 将调用命令脚本块与交换管理 shell 一起使用
- c# - 如何检测后退按钮单击并使webview返回
- r - 闪亮的将用户输入保存到谷歌表格
- ios - iOS - Firebase 存储尝试在 didFinishLaunchingWithOptions 之前初始化
- c# - ASP.NET core 2.1 本地化标识 url
- python - 如何使用 Python 生成 100 个大学课程百分比的圆环图?
- angular - Ng-Zorro 你来了
- mongodb - 根据MongoDb中的字段组合对象数组
- ios - 声音文件在模拟器中工作正常,但在 iPhone 中不起作用
- javascript - 什么是 C++ std::unordered_map 的等价物
在 Javascript 中?