web2py - 在 Web2py 中,用户登录后如何重定向到另一个页面?
问题描述
默认情况下,成功登录后,页面会指向“默认/索引”。我希望它重定向到其他页面。
这是我的控制器代码“user.py”
def login():
form=auth.login()
if form.process().accepted:
redirect(URL('page_1'))
return dict(form=form)
这是“用户/登录”的视图代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class="container">
<div class="form-container">
{{=form.custom.begin}}
<input type="text" name="email" placeholder="email id" class="string" id="auth_user_email" value="" />
<input placeholder="Password" name="password" class="password" id="auth_user_password" type="password" class="field" value="" />
<div class="wrap">
<input name="submit" type="submit" class="btn" value="{{=T('Login')}}" />
<input name="sign_up" class="btn" type="submit" formaction='/{{=request.application}}/default/user/register' value="{{=T('Sign Up')}}"/>
</div>
<input name="Forgot Password" type="submit" class="btn" value="{{=T('Forgot Password')}}" formaction='/{{=request.application}}/default/user/retrieve_password' />
{{=form.custom.end}}
</div>
</div>
</body>
</html>
问题是,当表单被处理时,它仍然重定向到“默认/索引”页面。我不知道在哪里可以更改系统中的这个默认设置。我的控制器的代码无法正常工作。
解决方案
该auth.login()
操作自己处理登录后重定向,因此在控制器代码中的下一行开始运行之前,重定向已经发生。
如此处所述,在您有Auth
设置的地方,您可以添加:
auth.settings.login_next = URL('default', 'page_1')
请注意,该设置只是默认的登录后重定向 URL(即,如果用户直接转到登录 URL)。但是,如果用户从另一个页面被重定向到登录页面或通过默认链接到达登录页面auth.navbar()
,则 URL 将包含一个_next
引用回原始页面的参数,auth.login()
因此将重定向回引用页面(即,auth.login()
首先检查_next
URL 中的参数,并且仅auth.settings.login_next
在没有_next
参数时使用)。如果您想覆盖此行为,并且page_1
无论用户如何进入登录页面,始终强制重定向到,您可以将next
参数传递给auth.login()
:
auth.login(next=URL('default', 'page_1'))
以上内容优先,并将覆盖_next
URL 中的任何参数以及auth.settings.login_next
.
推荐阅读
- javascript - JavaScript 类:从对象的函数属性中访问方法
- hybris - 在hybris tomcat中部署war文件
- php - 在 Woocommerce 中应用特定优惠券时隐藏免费送货
- java - 降低 ND4J 中的数字准确性
- pyspark - 使用追加写入模式将新数据写入现有 parquet 文件
- windows - Windows kernel32.dll 仅程序集绘制像素
- google-apps-script - OnEdit 功能不适用于共享用户
- ios - Swift 不从 Firestore 中提取数据
- python - 按列分组数据框并保存到不同的目录
- javascript - 根据值更改单元格背景颜色?