python - Django内置登录视图不重定向到下一个

Posted

技术标签:

【中文标题】python - Django内置登录视图不重定向到下一个【英文标题】:python - Django built in login view not redirecting to next 【发布时间】:2018-11-05 14:39:46 【问题描述】:

我正在使用 django auth 视图进行身份验证,但在成功登录后,它应该尝试将用户重定向到下一个 GET 参数,但它只重定向到 LOGIN_REDIRECT_URL! 这是我的网址

    url(r'^login/$', auth_views.login, 'template_name': 'accounts/registered/login.html',, name='login'),

在我的setting.py中

LOGIN_REDIRECT_URL = '/'

当未经身份验证的用户想要访问仪表板时,它会自动重定向到带有下一个参数的登录页面

http://127.0.0.1:8000/accounts/login/?next=/accounts/dashboard/

但登录成功后会重定向到

http://127.0.0.1:8000/

它应该根据下一个参数重定向它。

【问题讨论】:

你可以为你的views.py添加类/函数吗? 先生,您要添加哪个视图,我正在使用 django.contrib.auth 的登录视图导入视图作为 auth_views,这是 django 内置的。 啊,这可能是问题所在。 auth.views 的登录视图已被弃用。尝试导入 LoginView,它是一个 CBV,所以在你的 urls.py 中确保你使用 auth_views.LoginView.as_view() 现在我正在使用这个 url(r'^login/$', auth_views.LoginView.as_view(template_name= 'accounts/registered/login.html',redirect_field_name='next'), name= '登录'), 但它仍然没有重定向到下一个参数 【参考方案1】:

您好像忘记在accounts/registered/login.html 模板中添加隐藏字段next

<input type="hidden" name="next" value=" next ">

【讨论】:

上面接受的答案对我不起作用,隐藏字段 next 的值为空。要填充我必须使用的值 request.GET.next

以上是关于python - Django内置登录视图不重定向到下一个的主要内容,如果未能解决你的问题,请参考以下文章

Django用户身份验证:登录后不重定向

django重定向不重定向

Django 使用绑定表单重定向到另一个视图

Spring security自定义登录页面不重定向

条件满足后,私有路由不重定向

Spring Security KeyCloak 适配器不重定向到登录