Передать значение выбранного параметра из тега select в колбе Python - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть форма регистрации пользователя с тегом выбора.Я хочу, чтобы значение из выбранной опции было присвоено переменной (код показан ниже).

registration.html

<form method="POST" action="/register">
            <div class="form-group">
                {{render_field(form.name, class_="form-control", placeholder="Name")}}
            </div>
            <div class="form-group">
                {{render_field(form.email, class_="form-control",placeholder="Email")}}
            </div>
            <div class="form-group">
                {{render_field(form.username, class_="form-control", placeholder="Username")}}
            </div>
            <div class="form-group">
                {{render_field(form.password, class_="form-control", placeholder="Password")}}
            </div>
            <div class="form-group">
                {{render_field(form.confirm, class_="form-control", placeholder="Re-enter Password")}}
            </div>
             <div class="form-group">
                 <p>I prefer to : </p>
                 <select id= "studenttype" name="studenttype">
                    <input type="radio" name="Theorist" value="Theorist"><span>Read lecture notes</span><br/>
                    <input type="radio" name="Theorist" value="Activist"><span>Watch videos</span>
                 </select>
             </div>
            <input type="submit" class="btn btn-success" value="Submit">
            <p>Register as <a href="/register_instructor">Instructor</a> </p>
        </form>

Я использовалследующий код для присвоения выбранной опции значения переменной learning_style.

app.py

@app.route('/register', methods=['GET', 'POST'])
def register():
    learning_style = request.form.get("studenttype")
    form = RegisterForm(request.form)
    if request.method == "POST" and form.validate():
        name = form.name.data
        email = form.email.data
        username = form.username.data
        password = form.password.data
        user_type = 'student'
        print(learning_style)

        ...........

        flash('You are now registered', 'success')
        redirect(url_for('index'))
    return render_template('register.html', form=form)

Но, похоже, это не работает.Буду признателен за любую оказанную помощь.Спасибо.

1 Ответ

0 голосов
/ 22 сентября 2018

Вы путаете переключатели и выбираете выпадающие списки.

Измените это в вашем шаблоне с:

                  <select id= "studenttype" name="studenttype">
                    <input type="radio" name="Theorist" value="Theorist"><span>Read lecture notes</span><br/>
                    <input type="radio" name="Theorist" value="Activist"><span>Watch videos</span>
                  </select>

на:

                    <input type="radio" name="Theorist" value="Theorist"><span>Read lecture notes</span><br/>
                    <input type="radio" name="Theorist" value="Activist"><span>Watch videos</span>

И в вашем приложении:

learning_style = request.form.get("Theorist")
...