WTforms QuerySelectField, SelectField, MultipleSelectField, похоже, не работает с validate_on_submit () - PullRequest
0 голосов
/ 04 июля 2018

Итак, у меня есть форма с полем QuerySelect и полями String. Когда я пытаюсь представить и проверить его на стороне сервера, это просто не происходит. POST-запрос выполняется с правильными данными, но он никогда не входит в if form.validate_on_submit (). Я схожу с ума по этому поводу, помощь будет принята с благодарностью.

Также формы проверяются, если я удаляю SelectFields. В приведенном ниже примере я использую MultipleSeletField

Вот код:

вот моя логика маршрута:

app.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

model.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>
...