当前位置: 首页 > 知识库问答 >
问题:

如何使用Materialize和WTForms的单选按钮?

易琛
2023-03-14

在Materialize中,您使用属性name定义单选按钮的单选组,但Flask-WTForms将输入与属性name绑定。

{{ form.radio1(type='radio', name='group1') }}
{{ form.radio2(type='radio', name='group1') }}

将出现错误:

TypeError: html_params() got multiple values for keyword argument 'name'

如果我们不添加名称,收音机就不能像收音机一样工作,就像复选框一样工作,就像预期的那样。

我怎么能绕过这件事?

class AbcForm(FlaskForm):
    field1 = HiddenField('Field1')
    field2 = HiddenField('Field2')
class F(AbcForm):
    pass

    setattr(F, radio1, BooleanField('Radio1')
    setattr(F, radio2, BooleanField('Radio2')

form = F(field1=x, field2=y)

共有1个答案

凌经赋
2023-03-14

您不能在字段中设置name属性,wtforms已经为您设置了。

使用RadioField而不是HiddenField:

from wtforms import RadioField
from flask_wtf import Form

class YourForm(Form):
    radio_group = RadioField('label', choices=[('value','description'),('value_two','some other description')])
    (...)

然后,在endpoint中:

@route('/your/route')
def your_endpoint():
    your_form = YourForm()
    (...)
    return render_template('/your/template.html', form=your_form)
<form action="#">
    {% for subfield in form.radio_group %}
    <p>
        {{ subfield }}
        {{ subfield.label }}
    </p>
    {% endfor %}
</form>

这将生成以下代码:

  <form action="#">
    <p>
      <input id="radio_group-0" name="radio_group" type="radio" value="value">
      <label for="radio_group-0">description</label>
    </p>
    <p>
      <input id="radio_group-1" name="radio_group" type="radio" value="value_two">
      <label for="radio_group-1">some other description</label>
    </p>
  </form>

如果模板中包含了materialize,它将正确地呈现单选按钮,如这个柱塞所示。

 类似资料:
  • 我正在尝试使用selenium和Python单击这个单选按钮。 我有 但它不允许我点击它。我如何使用名称、值或类、值等的组合来点击? 关于如何使用硒,是否有一个很好的信息来源?因为我所发现的大部分是在java上使用的,而我使用的是Python。 编辑:使用XPATH

  • 问题内容: 我正在使用Flask构建网站,在其中使用WTForms。在表单中,我现在要使用FormFields的FieldList,如下所示: 因此,为了使人们能够进入具有两个地点的公司(稍后会动态添加地点),我在正面进行了此操作: 所以在提交时,我打印位置: 但我明白了 我可以使用locationForm打印第一个位置的值(请参见下文),但是我仍然不知道如何获取第二个位置的数据。 因此,位置列表

  • 问题内容: 我尝试用jQuery检查单选按钮。这是我的代码: 和JavaScript: 不起作用: 不起作用: 不起作用: 你还有其他主意吗?我想念什么? 问题答案: 对于等于或大于(> =)1.6的jQuery版本,请使用: 对于(<)1.6之前的版本,请使用: 提示:之后, 您可能还想打电话或单击单选按钮。 查看评论以获取更多信息。

  • 问题内容: 我是ReactJS的新手,很抱歉,如果听起来不对。我有一个根据接收到的数据创建多个表行的组件。 列中的每个单元格都有一个单选复选框。因此,用户可以从现有行中选择一个和一个。选项应在页脚中显示。那就是我被困住的地方。 在jQuery中,我可以做一些事情,例如选择一个单选复选框类型并将其插入第一个页脚单元格。 但是肯定有一种Reactjs方式,我完全不知道吗?非常感谢 问题答案: 渲染的任

  • 在jQuery中,我可以执行这样的操作,以获得一个单选复选框类型的选择,并将其插入到第一个页脚单元格中。 但肯定有一种Reactjs方式,我完全不知道?多谢