Как ввести новое значение для переключателей WTForms? - PullRequest
0 голосов
/ 23 апреля 2020

В приведенном ниже примере: частота радио по умолчанию установлена ​​на 1.

Когда я достигну / предпочтение, я изменю значение на соответствующую частоту

Информация затем хранится в соответствующей переменной.

До этого все в порядке.

Теперь, как я могу заполнить эту информацию в форме?

Для того, чтобы в следующий раз, когда Я доберусь до / предпочтение, переключатель частоты будет установлен на последний выбор.

Спасибо

    # -------------------
    # File : forms.py
    # -------------------
    from flask_wtf import FlaskForm
    from wtforms import StringField, RadioField , SubmitField
    from webapp import app

    class preferenceForm(FlaskForm):
        frequence = RadioField(
            'Frequence',choices=[
                (1,'4800 Hz'),
                (2,'8000 Hz'),
                (3,'11025 Hz'),
                (4,'44100 Hz')
            ],
            default=1,
            coerce=int)

        submit = SubmitField('Save')


    # -------------------
    # File : preference.html
    # -------------------

    {% extends "base.html" %}

    {% block content %}
        <h1>Preferences for tap2wav</h1>
        <form action="" method="post">
            {{ form.hidden_tag() }}
            <p>
              {{ form.frequence.label }}<br>
              {{ form.frequence}}
            </p>

            <p>{{ form.submit() }}</p>
        </form>
    {% endblock %}


    # -------------------
    # File : routes.py
    # -------------------

    @app.route('/preferences', methods=['GET', 'POST'])
    def preference():
        form = preferenceForm()

        if form.validate_on_submit():
            app.config["TAP2WAV_FORM_FREQUENCE_ID"] = form.frequence.data

            ########################################################################################
            #                                      QUESTION 
            # HOW TO POPULATE THE INFORMATION TO THE RADIO BUTTON FORM IN ORDER THEN NEXT /preference 
            # THE DEFAULT VALUE WILL BE SET TO : form.frequence.data
            ########################################################################################

            return redirect('/')
        # Pass the template data into the template main.html and return it to the user
        return render_template("preference.html", AppConfig=app.config, form=form)

1 Ответ

0 голосов
/ 23 апреля 2020

Наконец я нашел ответ ..

form = preferenceForm(frequence=app.config["TAP2WAV_FORM_FREQUENCE_ID"])

Другими словами.

    @app.route('/preferences', methods=['GET', 'POST'])
    def preference():
        form = preferenceForm(frequence=app.config["TAP2WAV_FORM_FREQUENCE_ID"])


        if form.validate_on_submit():
            app.config["TAP2WAV_FORM_FREQUENCE_ID"] = form.frequence.data

            return redirect('/')
        return render_template("preference.html", AppConfig=app.config, form=form)
...