2016-03-23 12 views
1

Ich erstelle ein Formular, aber aus irgendeinem Grund, wenn ich es versuche und validiere, gibt es immer False zurück.WTForms Form.validate (self) gibt immer false zurück

Form:

class AddStuffForm(Form): 
    myList = [(idx,int(val.tier)) for idx,val in enumerate(getList())] 
    myList.remove((2,3)) # this is an element I don't want in the list 

    myListForm = SelectField("List:", [Required()], choices=myList) 

    def __init__(self, *args, **kwargs): 
     """ Constructor. """ 
     Form.__init__(self, *args, **kwargs) 
     self.user = None 

    def validate(self): 
     """ Validates registration form. """ 
     rv = Form.validate(self) 
     if not rv: 
      return False 

Aufrufe:

@app.route('/addStuff', methods=['GET', 'POST']) 
def addStuff(): 
    """ Submits register form. """ 

    form = AddStuffForm() 
    if form.validate_on_submit(): 
     return redirect(url_for('addStuff')) 

    return render_template('/AddStuff.html', form=form) 

AddStuff.html:

{% extends "layout.html" %} 

{% block content %} 

<h1>Add stuff</h1> 
<form method="POST" action="{{ url_for('addStuff') }}"> 
    {{ form.hidden_tag() }} 
    <p>{{ form.myListForm.label }} {{ form.myListForm(size=1) }}</p> 

    <input type="submit" value="Add it"> 
</form> 
{% endblock %} 

Wenn das Problem nach oben, das einzige, was ich in der Lage gewesen, sagt zu finden stelle sicher, dass "{{form.hidden_tag()}}" im HTML-Code enthalten ist, aber wie du siehst, habe ich das schon. Gibt es einen Fehler mit dem SelectField, das ich vermisse?

Antwort

0

Entschieden, nur das Bit "Wenn nicht rv: return False" zu löschen. Wenn im Hintergrund irgendetwas falsch läuft, na ja.

Verwandte Themen