[英]AttributeError: 'LoginForm' object has no attribute 'validate_on_sumbit'
I have done a registration and login page registration page works fine but login page when i Click on create account i get object has no attribute.我已经完成了注册和登录页面注册页面工作正常,但是当我点击创建帐户时登录页面我得到 object 没有属性。
application.py应用程序.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')
login.html登录.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 %}
ErrorLog错误日志
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'
I'm new at flask can you direct e where I'm mistaken PS I'm working with flaskwtf V1.0.1我是 flask 的新手,你能指示我弄错的地方吗PS我正在使用 flaskwtf V1.0.1
Change the line that adds submit in login.html from将在 login.html 中添加提交的行从
<div class="form-group">
<input type="submit" value="Create" >
</div>
to至
<div class="form-group">
{{DisplayField(form.submit, 'Create')}}
</div>
If you are using Flask WTF all fields in the form must come from the library.如果您使用的是 Flask WTF,表单中的所有字段都必须来自库。
PS I don't know where you got the confirm variable to check the password from. PS我不知道你从哪里得到确认变量来检查密码。 It may not work for you either.
它也可能不适合你。 If you want the user to enter the password twice, read here: wtforms.validators.EqualTo
如果您希望用户输入两次密码,请阅读此处: wtforms.validators.EqualTo
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.