2017-05-04 11 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

CSRF가 작동하고 양식이 두 배로 확인되어 누락되었습니다. 감사합니다. –

+0

"else" – Arya