【问题标题】:How to populate a new value to a radio buttons WTForms?如何将新值填充到单选按钮 WTForms?
【发布时间】:2020-04-23 09:48:14
【问题描述】:

在下面的示例中:频率无线电默认设置为 1。

当我到达 /preference 时,我会将值修改为适当的频率

然后将信息保存在适当的变量中。

到这里为止,一切都很好。

现在,我怎样才能将此信息填充到表单中?

为了下次我到达 /preference 时,频率单选按钮将设置为最后一个选项。

谢谢

    # -------------------
    # 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)

【问题讨论】:

    标签: python html flask-wtforms wtforms


    【解决方案1】:

    终于找到答案了..

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-01
      • 2023-02-10
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 2021-12-24
      • 2011-12-25
      • 2021-09-25
      相关资源
      最近更新 更多