2017-05-04 10 views
-1

ビュー機能に問題があります。私の他のコードは適切に動作し、同じ構造またはロジックを持っています。私はちょうどなぜこの場合、それはロジックが残りの部分と同じで、残りが正常に動作している間に動作していないのだろうかと疑問に思っています。他のコードと論理が同じであってもValueError

# ########### POST answers ############################### 
     if request.method == 'POST': 
      if form.validate_on_submit(): 
       answer = request.form['answer_text'] 
       name = form.name.data 
       subject = request.form['hidden_sub'] 
       flash('Homework posted for ' + str(subject) + "!") 
       try: 
        cur = mysql.connection.cursor() 
        sql = '''INSERT INTO answers (email, school, name, answer, subject) 
          VALUES (%s, %s, %s, %s, %s)''' 
        cur.execute(sql, (session['user'], session['school'], name, answer, subject)) 
        mysql.connection.commit() 
       finally: 
        cur = mysql.connection.cursor() 
        cur.close() 
        return render_template('s_homework.html', user=session['user'], school=session['school'], 
             classes=classes, infos=infos, info_size=info_size, form=form) 


HTML FORM: 
    <form method="POST" action="/s_homework/{{user}}/{{school}}/"> 
      <input type="text" value="{{sub}}" style="visibility:hidden;" name="hidden_sub"> 
      {{ wtf.form_field(form.name) }} 
      <label> Answer Form*</label> 
      <textarea class="form-control" name="answer_text" style="height:10em;"></textarea> 
      <p> </p> 
      {{ wtf.form_field(form.submit, class="btn btn-success", 
      style="position:relative; left:88%;") }} 
</form> 
+0

正確なValueErrorを貼り付けることはできますか? – Arya

+0

ValueError ValueError:View関数が応答を返しませんでした –

+0

返信いただきありがとうございますArya! –

答えて

0

問題は、あなたが

if form.validate_on_submit(): 

でもない(覆われていない)「他」の場合の見返りの場合のリターンを持っていることでなければなりません。フラスコの機能では、常に何かを返す必要があります。テンプレートを返す必要がありますが、 "フォームでエラーが発生しました。"あなたのフォームには何か問題があるかもしれませんが、私はそのコードからそのことを知ることはできません。

+0

それは働いて、フォームを2倍にチェックし、CSRFが欠落していました。 ありがとう! –

+0

あなたはまだ "else" – Arya

関連する問題