我有一个登录页面。提交后如果是网络邮件'被选中,请求 应该将提交的凭据重定向到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
而不是
提交。
答案 0 :(得分:0)
发出重定向时,只需告知浏览器重新提交给其他服务器。即服务器影响请求为时已晚。
所以要么:开始新请求,要么使用javascript来更改提交目标。
感谢我的同事约翰开始我的大脑。