【问题标题】:flask-wtforms field required烧瓶 wtforms 字段必填
【发布时间】:2016-01-23 07:37:17
【问题描述】:

我如何在这个烧瓶代码上添加所需的标签:

{{ form.youtube_href(type='url', class='form-control') }}

实际输出是:

<input class="form-control" id="youtube_href" name="youtube_href" value="" type="url">

需要这个输出 bat 给出错误:

<input class="form-control" id="youtube_href" name="youtube_href" value="" type="url" required>

我试过这个蝙蝠给出错误:

{{ form.youtube_href(type='url', class='form-control', 'required') }}

【问题讨论】:

    标签: python flask flask-wtforms


    【解决方案1】:

    从 WTForms 2.2(2018 年 6 月 2 日)开始,如果字段具有设置 required 标志的验证器(例如 DataRequiredInputRequired),则现在会呈现 required 属性。如果由于某种原因不想渲染属性,可以传递required=False。或者如果您想禁用所有浏览器验证,您可以在form 标签中设置novalidate 属性。一般来说,您应该更愿意启用浏览器验证,因为它会阻止简单验证的请求/响应,这是可取的。


    您在关键字参数之后传递了一个位置参数,这是一个语法错误。相反,传递required=True,它将在标签上设置一个裸属性。检查字段上的标志以查看是否设置了 Required 验证器:field.flags.required 是布尔值。创建 URLField 而不是手动传递类型。

    from flask_wtf import Form
    from wtforms.fields.html5 import URLField
    from wtforms.validators import InputRequired
    
    class MyForm(Form):
        youtube_href = URLField(validators=[InputRequired()])
    
    form = MyForm()
    print(form.youtube_href(required=form.youtube_href.flags.required))
    # <input id="youtube_href" name="youtube_href" required type="url" value="">
    

    【讨论】:

      【解决方案2】:

      对于那些只想将required 属性添加到他们的 html 输入的人,可以按照上面 Raja Simon 提到的评论来完成。只需使用required='required' 在您的模板 中调用您的字段名称示例:

      <form>
        ...
        {{myform.my_name_field(required='required')}}
        {{myform.my_email_field(required='required')}}
        ...
      </form>
      

      上面的代码会产生这样的字段:

      <input id="my_name_field" name="my_name_field" required="required" type="text" value="">
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-30
        • 2013-03-16
        • 1970-01-01
        • 2016-05-03
        • 1970-01-01
        • 1970-01-01
        • 2019-12-01
        • 2020-07-24
        相关资源
        最近更新 更多