2017-01-17 4 views
0

Flask web developmentチュートリアルを使用していますが、いくつかのエラーが発生しています。私の単純なWebアプリケーションはFlaskFormを利用しており、情報の検証を試みていますが、特にvalidate_on_submit()関数でいくつかの問題が発生しています。ここでTypeError:validate_on_submit()missing 1必要な位置引数: 'self'

class NameForm(FlaskForm): 
    name = StringField("What is your name?", validators=[required]) 
    submit = SubmitField('Submit') 



@app.route('/index', methods=['GET', 'POST']) 
def index(): 
    name = None 
    formi = NameForm() 


    if FlaskForm.validate_on_submit(): 
     name = FlaskForm.name.data 
     FlaskForm.name.data = '' 
     return render_template('index.html', form=formi, name=name) 

私のエラーが発生した私のPythonのコードであるあなたは、クラスのフォームのインスタンスからではなくvalidate_on_submitを呼び出す必要が

答えて

1

if文。用途:

if formi.validate_on_submit(): 
1

このエラーがdocsからこの例に示すようにvalidate_on_submitは、クラス、クラス自体にFlaskFormとないのインスタンスで呼び出さなければならないことを意味する:

あなたに適用
@app.route('/submit', methods=('GET', 'POST')) 
def submit(): 
    form = MyForm() 
    if form.validate_on_submit(): 
     return redirect('/success') 
    return render_template('submit.html', form=form) 

コードif FlaskForm.validate_on_submit():
if formi.validate_on_submit():に変更する必要があります。

+0

私は本当にこの質問のためにいくつかの肯定的な点が必要です、私は私の質問にいくつかの肯定的な点なしでスタックのオーバーフローで他の質問をすることはできません。投票してください –

関連する問題