问题描述
写了一个修改密码的表单,在验证表单时,在后台写的错误信息无法显示到前端留出的错误信息<span>
,前端始终出现默认的Fillout this field
部分后端是这样写的:
在forms.py:
class PwdForm(FlaskForm):
old_pwd = PasswordField(
label="旧密码",
validators=[
DataRequired("请输入旧密码")
],
description="旧密码",
render_kw={
"class": "form-control",
"placeholder": "请输入旧密码"
}
)
submit = SubmitField(
"确认",
render_kw={
"class": "btn btn-primary"
}
)
在views.py:
@admin.route("/pwd_reset/", methods=["GET", "POST"])
@admin_login_req
def pwd_reset():
form = PwdForm()
if form.validate_on_submit():
data = form.data
admin = Admin.query.filter_by(name=session["admin"]).first()
from werkzeug.security import generate_password_hash
admin.pwd = generate_password_hash(data["new_pwd"])
db.session.add(admin)
db.session.commit()
flash("修改密码成功,请重新登录", "ok")
redirect(url_for("admin.logout"))
return render_template("admin/pwd_reset.html", form=form)
前端HTML里这样:
<label for="input_pwd">{{ form.old_pwd.label }}</label>
{{ form.old_pwd }}
{% for err in form.old_pwd.errors %}
<span style="color: #ff4f1f">{{ err }}</span>
{% endfor %}
可是这个当我提交时未输入旧密码时只是一个默认的提示信息,提交新的密码也没有成功跳转,是哪里出了问题,谢谢
我的项目里是这样写的,
form.py
view.py
html 页面
详尽的内容你可以看我的项目:
https://github.com/eastossifr...