如何向请求添加字段?

时间:2015-04-10 11:06:31

标签: flask wtforms flask-wtforms

我有一个登录页面。提交后如果是网络邮件'被选中,请求 应该将提交的凭据重定向到Webmail服务器,但是 在不同的钥匙下。这是我现在正在尝试的内容:

if form.validate_on_submit():
    if form.destination.data == 'webmail':
        form.rc_user.data = form.email.data
        form.rc_password.data = form.password.data
        return redirect('https://example.com/webmail/', code=307)

这几乎可行:POST被重定向到webmail。但是价值观 提交的是默认值,而不是指定的值。

我还有一些问题:

  • 密钥应为_user_pass,但Flask似乎爆炸了 前导下划线字段名称。

  • 我不想将这些字段添加到原始类中。我想要子类 提交时,有点如下:

    if form.validate_on_submit():
        if form.destination.data == 'webmail':
            class WebmailLoginForm(LoginForm):
                rc_user = EmailField('user', default=form.email.data)
            form = WebmailLoginForm(request.form)
            return redirect('https://example.com/webmail/', code=307)

    当我这样做时,添加的字段显示为UnboundField而不是 提交。

1 个答案:

答案 0 :(得分:0)

发出重定向时,只需告知浏览器重新提交给其他服务器。即服务器影响请求为时已晚。

所以要么:开始新请求,要么使用javascript来更改提交目标。

感谢我的同事约翰开始我的大脑。