- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 WTForms 表单,其中包含几种不同类型的字段,除了 RadioField
之外,所有这些字段都有效。
Python: 从flask_wtf导入FlaskForm 从 wtforms 导入验证器、RadioField、DecimalField
class MyForm(FlaskForm):
field_one = DecimalField('Field 1', validators=[Optional()]
field_two = RadioField('Radio', choices=[(True, 'True'), (False, 'False')])
submit = SubmitField('Submit')
@app.route('/page', methods=['GET', 'POST'])
def page():
form = MyForm()
print('Page requested')
if form.validate_on_submit():
print('form validated')
return render_template('/page.html', form=form)
HTML:
<form method="POST">
<div class="row">
{{ form.hidden_tag() }}
{{ form.field_one.label }}
<div>
{{ form.field_one }}
</div>
</div>
<div class="row">
{{ form.hidden_tag() }}
{{ form.field_two.label }}
<div>
{% for subfield in form.field_two %}
<p>{{ subfield }} - {{ subfield.label }}
{% endfor %}
</div>
</div>
</form>
当我取出与 field_two
(RadioField)相关的任何内容时,print('form validated')
将在每次按下提交时执行。
但是一旦包含 RadioField,表单就永远不会被验证。我认为这可能是因为该字段没有关联的验证器,但当我将 validators=[Optional()]
添加到 field_two
时它仍然不起作用定义。
有人知道为什么表单没有通过 RadioField 进行验证吗?
(我已经尝试了我能想到的四个选项。单击提交并选择或不选择单选选项,然后在表单定义中添加和删除可选验证器。)
最佳答案
我相信这是因为类型检查。你应该告诉它像这样强制转换为 bool 值:
field_two = RadioField('Radio', coerce=bool, choices=[(True, 'True'), (False, 'False')])
编辑:或者更好的是,使用 1 和 0 并强制转换为 int,如下所示:
field_two = RadioField('Radio', coerce=int, choices=[(1, 'True'), (0, 'False')])
然后您可以检查值是否为真,或者将其转换为 bool 值,如下所示:
bool(form.field_two.data)
关于python - WTForms RadioField 阻止表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53101631/
我有一个 WTForms 表单,其中包含几种不同类型的字段,除了 RadioField 之外,所有这些字段都有效。 Python: 从flask_wtf导入FlaskForm 从 wtforms 导入
我正在用这样的 wtforms 生成一个 html 表单: {% for subfield in form.time_offset %} {{ subfield }
当使用以下形式时: class TextForm(Form): example = RadioField('Choice 1:', choices=[('A','Option A'),('B'
在 Flask-WTForms 中,我们可以为每个字段的每个验证器提供自定义消息。但是对于 RadioField 它只显示默认消息。下面是一个例子。 >>> from wtforms import F
我正在使用 Python 构建网站 Flask我使用的框架 WTForms .在一种形式中,我有一个 RadioField定义如下: display = RadioField('display', d
我有一个带有 TextField、FileField 的表单,我想添加一个 RadioField。 我想要一个包含两个选项的单选字段,用户只能在其中选择一个。我正在以前两种有效的形式为例。 我的 fo
建议的建模模板 HTML radio 输入的方法是: {% for subfield in form.radio %} {{ subfield }} {{ subfield.labe
我想知道是否可以让 Flask WTForms RadioField 在有序列表而不是无序列表中呈现单选按钮列表。我当前的jinja2模板如下: {% extends "base.html.j2" %
我正在使用jq-idealforms构建一个漂亮且简单的表单。在其中我有一个 radio 字段,我想在从数据库获取信息后用 jquery 填充它。 Here有一个例子(在“step2”..第2节)您可
嗨,论坛成员,我在 extjs 4 中设置 radio 场时遇到了一个问题 下面给出了我的表单 radiogroup xtype 代码 { xtype: 'radiogroup', dataI
我主要寻找的是 WTForms 的 InputRequired() 的 RadioField 等效验证器。我的意思是,当您尝试提交表单而不在具有 InputRequired() 验证器的 String
有什么方法可以替换 WTForms 上的 html 标签吗? 表单代码: class BasicForm(Form): some_select = RadioField("something"
默认情况下,Sencha Touch 1.1 提供了 radiofield和一个 checkboxfield其中显示一个复选标记(勾号)。由于这种设计,没有视觉方式来区分它们。 如何更改 radiof
我是一名优秀的程序员,十分优秀!