2016-03-23 17 views
1

私はフォームを作成していますが、試して検証するたびに何らかの理由で常にFalseを返します。WTForms Form.validate(self)は常にfalseを返します

フォーム:

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 

再生回数:

@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 %} 

問題を見上げたとき、私は見つけることができた唯一の事は言うまで"{{form.hidden_​​tag()}}"がHTMLに含まれていることを確認してください。ご覧のとおり、私はすでにそれを持っています。 SelectFieldに何かエラーがありますか?

答えて

0

"If not rv:return False"ビットを削除することにしました。バックグラウンドで何か悪いことが起こっていれば、うーん。

関連する問題