【问题标题】:Flask: Using WTForm on another Page than the one rendering the form itselfFlask:在另一个页面上使用 WTForm 而不是呈现表单本身的页面
【发布时间】:2018-09-01 23:20:51
【问题描述】:

我有以下设置:

渲染页面:

@app.route('/one', methods=['GET'])
def one():
    form = AnyForm()
    return render_template(
        'form.html', form=form
    )

模板(剥离基本):

{{ wtf.quick_form(form, action=url_for('two')) }}

包含逻辑的路由/功能

@app.route('/two', methods=['POST'])
def two(form):
    print('FORMDATA: ' + form)
    return redirect(url_for('one'))

错误是:

TypeError: two() missing 1 required positional argument: 'form'

我该如何处理?

【问题讨论】:

    标签: flask flask-wtforms flask-bootstrap


    【解决方案1】:

    您必须在 functuin two 上定义表单并从函数收到的 post 请求中填充它,这样您就不需要获取任何参数

    试试这个:

    @app.route('/two', methods=['POST'])
    def two():
        form = AnyForm(request.form)
        print('FORMDATA: ' + form)
        return redirect(url_for('one'))
    

    按照您尝试的方式,您必须为您的 url_for 函数提供这样的表单参数

    {{ wtf.quick_form(form, action=url_for('two', form=form)) }}
    

    我不确定它是否有效

    【讨论】:

      猜你喜欢
      • 2021-12-09
      • 2012-09-22
      • 2011-09-20
      • 2022-07-05
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-06
      相关资源
      最近更新 更多