【问题标题】:Problem with Flask wtforms validation errorsFlask wtforms 验证错误的问题
【发布时间】:2023-02-02 03:04:39
【问题描述】:

Flask wtforms 不显示验证错误(例如,当密码不匹配时)。表单.py

from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, BooleanField, SubmitField
from wtforms.validators import DataRequired, Length, Email, ValidationError, EqualTo, Regexp

class RegistrationForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired(), Length(min=5, message='Name length must be between %(min)d')]), Regexp("^[A-Za-z][A-Za-z0-9_.]*$", 0, "Username must have")
    password = PasswordField('Password', validators=[DataRequired(), Length(min=8, message='Password should be at least %(min)d characters long')])
    confirm_password = PasswordField('Confirm Password', validators=[DataRequired(message='*Required'), EqualTo('password', message='Both password fields must be equal!')])
    email = StringField('Email', validators=[DataRequired(), Email()])
    register = SubmitField('Register')

各自的 sn-p 来自注册.html

<div class = "input-group mb-3">
{{form.confirm_password.label(class="form control table")}}
{{form.confirm_password(class="form-control form-control-lg", id="floatingPassword", placeholder="Confirm Password")}}
   </div>
      {% for error in form.password.errors %}
       <div class="alert alert-danger input-group" role="alert">
        <span style="color: red;">{{ error }}</span>
       </div>
       {% endfor %}

和 sn-p 来自路由功能视图.py

@custodian_view.route('/register', methods=['GET', 'POST'])
def register():
    form = RegistrationForm(request.form)
    if request.method == 'POST':
        if form.validate_on_submit:
            user = Account(email=form.email.data, username=form.username.data, password=form.password.data)
            db.session.add(user)
            db.session.commit()

请建议我该如何解决这个问题

【问题讨论】:

    标签: flask flask-wtforms wtforms


    【解决方案1】:

    如果密码不匹配,将通过表单发送错误消息。确认密码.错误。 所以你必须改变这一行:

    {% for error in form.password.errors %}
    

    进入这个:

    {% for error in form.confirm_password.errors %}
    

    【讨论】:

      猜你喜欢
      • 2014-01-21
      • 2014-02-05
      • 2021-12-09
      • 1970-01-01
      • 1970-01-01
      • 2016-05-30
      • 2014-02-08
      • 2013-11-15
      • 1970-01-01
      相关资源
      最近更新 更多