簡體   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