【问题标题】:What's the right way to optionally require a field using Flask-WTForms?使用 Flask-WTForms 选择性地要求字段的正确方法是什么?
【发布时间】:2013-01-13 14:15:10
【问题描述】:

我将 Flask 与 Flask-WTForms 一起使用,并且正在编写一个管理页面,可以在其中更新用户的值 - 包括密码。

我正在使用与注册相同的表单页面,但由于不需要更新密码,我不想要求它。使用 Flask-WTForms 执行此操作的正确方法是什么?

我在forms.py 中有我的UserForm,我正在考虑制作一个自定义验证器并有一个文件级require_password 选项可以覆盖默认检查。我对 WTForms 比较陌生,对 Flask 也比较陌生。

【问题讨论】:

    标签: python flask wtforms flask-wtforms


    【解决方案1】:

    这个解决方案似乎可以满足我的要求:

    forms.py

    from flask.ext.wtf import Optional
    
    def make_optional(field):
        field.validators.insert(0, Optional())
    
    #Rest of code here...
    

    然后在我的烧瓶端点内我可以调用:

    user_form = UserForm()
    forms.make_optional(user_form.password)
    if user_form.validate_on_submit():
        #Go on your merry way!
    

    这似乎符合我的要求 - 保留所有其他验证(例如确认),同时在没有密码的情况下忽略任何内容。

    【讨论】:

    • 我收到“ImportError: No module named flask.ext.wtf.Optional”
    • @vivi 你可以试试“from wtforms.validators import Optional”看看它是否适合你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    相关资源
    最近更新 更多