首页 > 解决方案 > WTforms QuerySelectField , SelectField , MultipleSelectField 似乎不适用于 validate_on_submit()

问题描述

所以我有一个带有 QuerySelect field 和 String fields 的表单。当我尝试提交它并在服务器端验证它时,它就不会发生。POST 请求使用正确的数据进行,但它从未进入 if form.validate_on_submit() 。我为此发疯,非常感谢您的帮助。

如果我删除 SelectFields,表单也会验证。在下面的示例中,我使用的是 MultipleSeletField

这是代码:

这是我的路线逻辑:

应用程序.py

 @app.route('/contacts' , methods=['GET' , 'POST'])
 @login_required
 def contacts():
        '''
            Add contacts to database with option to export 
            and import data onto Peep.
        '''
        user = current_user.username 
        form = login_model.AddContactForm()
        form_add_group = login_model.AddGroupForm()
        form_add_group.contact.choices = [ (r.id , r.company_name ) for r in login_model.AddContact.query.order_by('company_name') ]

        if form_add_group.validate_on_submit():
            print("going in")
            return "{}{}".format(form_add_group.group.data , form_add_group.contact.data)

        mssg = ""
        contact_list = db.session.query(login_model.AddContact).all() 




        return render_template('contacts.html' , user = user ,form = form , error_mssg_a ="Testing the error run" ,
        contact_list = contact_list , form_add_group=form_add_group) , 200

模型.py:

class AddGroupForm(FlaskForm):
    group = QuerySelectField('group' , allow_blank = False , get_label = 'group' , query_factory = group_choice)
    contact= SelectMultipleField('contact' )

这是模板:

<form action="/contacts" method="POST">
            {{form_add_group.hidden_tag()}}

            <div class="select control">
            {{form_add_group.group}}
            </div>

            <div class="select control is-multiple" width="8">
                {{form_add_group.contact}}
            </div>


            <button class="button is-black"><i class="icon-btn" data-feather="check-square"></i>Create Group</button>

</form>

标签: pythonflaskflask-wtformswtforms

解决方案


推荐阅读