簡體   English   中英

Flask-WTF表單沒有屬性'validate_on_submit'

[英]Flask-WTF form doesn't have attribute 'validate_on_submit'

提交時,我正在使用Flask-WTF驗證表單。 我正在使用form.validate_on_submit() ,但是出現以下錯誤:

AttributeError: 'PickASong' object has no attribute 'validate_on_submit'

為什么會出現此錯誤,該如何解決?

import flask
from flask import Flask
from flask import render_template
from flask import Flask
from flask import request
from flask import render_template
from flask import redirect
from flask.ext.wtf import Form
from wtforms import *
from wtforms import StringField, BooleanField
from wtforms.validators import DataRequired
from flask.ext.wtf import Form
from wtforms import Form, TextField, BooleanField, PasswordField, TextAreaField, validators

class PickASong(Form):
    song = TextField(u'Song title', validators=[DataRequired()])

class PickAnumber(Form):
    songNumber = IntegerField(u'Please select song number', validators=[DataRequired()])

app = Flask(__name__)

@app.route("/",methods=["POST","GET"])
def hello():
    form = PickASong(csrf_enabled=False)

    if form.validate_on_submit():
        user = form.song.data
        print user
        d=str(user)
        print d
        # search(d)
        cmd = "python Search.py --q \"" + d +'"'
        os.system(cmd)
        return redirect('/2')

    return render_template('searchtwo.html', form=form)

from flask.ext.wtf import Form ,然后from wtforms import * ,后者包括基本WTForms Form 因此,名稱Form綁定到它的最后一個對象wtforms.Form 這就是您避免import *的原因。 一個快速的解決方法是from wtforms import *下面的from flask_wtf import Formfrom wtforms import * 正確的解決方法是僅導入您需要的內容,而不導入所有內容。 如果您需要兩種形式,請為一個導入別名,以免名稱沖突: from flask_wtf import Form as FlaskForm

您已經在頂部的大導入塊下面多余地寫入了以下導入。

from flask.ext.wtf import Form
from wtforms import Form, TextField, BooleanField, PasswordField, TextAreaField, validators

只需不從wtforms導入Form或反轉兩行即可立即修復。

from flask.ext.wtf import Form
from wtforms import TextField, BooleanField, PasswordField, TextAreaField, validators

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM