2017-05-04 2 views
-1

Ich habe ein Problem mit den View-Funktionen. Meine anderen Codes funktionieren ordnungsgemäß und haben die gleiche Struktur oder Logik. Ich frage mich nur, warum es in diesem Fall nicht funktioniert, wenn die Logik mit dem Rest identisch ist, während der Rest richtig funktioniert, dieser bekommt einen Fehler.ValueError, auch wenn die Logik mit anderen Codes identisch ist

# ########### 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

Können Sie den genauen ValueError einfügen, den Sie bekommen? – Arya

+0

ValueError ValueError: View-Funktion gab keine Antwort zurück –

+0

Danke für die Antwort Arya! –

Antwort

0

Das Problem muss sein, dass Sie im Falle von

if form.validate_on_submit(): 

aber keine Rückkehr für die „else“ Fall eine Rückkehr haben (die nicht abgedeckt wurde). Bei den Flaschenfunktionen müssen Sie immer etwas zurückgeben. Sie sollten die Vorlage zurückgeben, aber blinken "Fehler mit Ihrem Formular." Es könnte auch etwas mit Ihrem Formular nicht stimmen, aber das kann ich nicht anhand des Codes feststellen.

+0

Es funktionierte, verdoppelte das Formular und fehlte das CSRF. Vielen Dank! –

+0

Sie sollten noch etwas für das "sonst" haben – Arya

Verwandte Themen