我正在将 Flask 与 Flask-WTForms 一起使用,并且正在编写一个管理页面,可以在其中更新用户的值 - 包括密码。
我正在使用与注册相同的表单页面,但由于不需要更新密码,我不想要求它。使用 Flask-WTForms 执行此操作的正确方法是什么?
我已经UserForm
进去了forms.py
,我正在考虑制作一个自定义验证器,并有一个文件级require_password
选项可以覆盖默认检查。我对 WTForms 还很陌生,对 Flask 也有些陌生。
我正在将 Flask 与 Flask-WTForms 一起使用,并且正在编写一个管理页面,可以在其中更新用户的值 - 包括密码。
我正在使用与注册相同的表单页面,但由于不需要更新密码,我不想要求它。使用 Flask-WTForms 执行此操作的正确方法是什么?
我已经UserForm
进去了forms.py
,我正在考虑制作一个自定义验证器,并有一个文件级require_password
选项可以覆盖默认检查。我对 WTForms 还很陌生,对 Flask 也有些陌生。
该解决方案似乎可以满足我的要求:
在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!
这似乎符合我的要求 - 保留所有其他验证(例如确认),同时在没有密码的情况下忽略任何内容。