繁体   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