繁体   English   中英

AttributeError: 'LoginForm' object 没有属性 'validate_on_sumbit'

[英]AttributeError: 'LoginForm' object has no attribute 'validate_on_sumbit'

我已经完成了注册和登录页面注册页面工作正常,但是当我点击创建帐户时登录页面我得到 object 没有属性。

应用程序.py

from flask_wtf import FlaskForm
from wtforms import StringField,PasswordField,SubmitField
from wtforms.validators import Length,EqualTo,InputRequired,ValidationError
from models import User
@app.route('/login', methods=['GET', 'POST'])

def login():
    login_form = LoginForm()
    if login_form.validate_on_sumbit():
        return "Logged in, finally!"
    return render_template('login.html', form=login_form)
#wtform_fields.py
class LoginForm(FlaskForm):
    """Login Form """

    username = StringField('username_label',validators=[InputRequired(message="username required")])
    password = PasswordField('password_label',validators=[InputRequired(message="Password required"),invalid_credentials])
    submit   = SubmitField('Login')

登录.html

{% from 'form_helper.html' import DisplayField %}

{% extends "prelogin-layout.html" %}

{% block title %} Registration {% endblock %}

{% block content %}

    <h3>Create your account</h3>
    <hr>
    <form action="{{ url_for('index') }}", method="POST" >
       {{DisplayField(form.username, 'Username', autocomplete='off',autofocus=true)}}
       {{DisplayField(form.password, 'Password')}}
       {{DisplayField(form.confirm, 'Confirm Password')}}
        <div class="form-group">
            <input type="submit" value="Create" >
        </div>
        {{form.csrf_token}}
    </form>
   
   
  
{% endblock %}

错误日志

in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "C:\Users\Catalyst\Desktop\Python\chatAp\application.py", line 18, in login
    if login_form.validate_on_sumbit():
AttributeError: 'LoginForm' object has no attribute 'validate_on_sumbit'

我是 flask 的新手,你能指示我弄错的地方吗PS我正在使用 flaskwtf V1.0.1

将在 login.html 中添加提交的行从

        <div class="form-group">
            <input type="submit" value="Create" >
        </div>

        <div class="form-group">
            {{DisplayField(form.submit, 'Create')}}
        </div>

如果您使用的是 Flask WTF,表单中的所有字段都必须来自库。

PS我不知道你从哪里得到确认变量来检查密码。 它也可能不适合你。 如果您希望用户输入两次密码,请阅读此处: wtforms.validators.EqualTo

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM