为什么第二个用户登录会将我重定向到/accounts/profile/ URL?

8 浏览
0 Comments

为什么第二个用户登录会将我重定向到/accounts/profile/ URL?

我正在使用Django内建的用户登录视图:\n

url(r'^user/login/$', 'django.contrib.auth.views.login', {'template_name': 'users/templates/login.html'}, name='user-login'),

\n登录后,当我再次访问user/login时,我可以再次登录。我提交表单后得到以下错误信息:\n

\n当前URL,accounts/profile/,没有匹配任何内容。\n

\n我在urls.py中没有声明这个URL。我做错了什么?为什么框架想要重定向到这个URL?

0
0 Comments

第二个用户登录后为什么会被重定向到/accounts/profile/ url?

这个问题的出现原因是在登录页面的HTML代码中没有正确设置"next"参数的值。在登录页面的HTML代码中,有一个隐藏的input元素,name属性为"next",value属性为"/",表示重定向的目标URL。

解决方法是在登录页面的HTML代码中正确设置"next"参数的值。将value属性修改为重定向目标URL的路径即可。

示例代码如下:

<form method="post" action=".">

~blah~

<input type="hidden" name="next" value="/accounts/profile/">

~blah~

</form>

祝好运!

0
0 Comments

为什么第二个用户登录会将我重定向到/accounts/profile/网址?

根据文档的解释

(accounts/profile/是...)在contrib.auth.login视图没有next参数时,登录后请求被重定向到的URL。

因为您已经登录,所以您的请求被重定向到这个URL。为了避免重定向,您应该在将其发送到user/login之前注销用户,创建自定义的登录视图或添加Next参数

0
0 Comments

第二个用户登录后将我重定向到/accounts/profile/的问题是因为django.contrib.auth.views.login在登录后会将用户重定向到/accounts/profile/。为了解决这个问题,可以在settings.py文件中设置LOGIN_REDIRECT_URL为任何你想要的URL。虽然重定向到一个不存在的URL是正确的,但是重定向到'/'可能会更合理一些。如果想要将用户重定向回默认的主页,可以在settings.py中添加"LOGIN_REDIRECT_URL = ('..')"。另外,如果页面显示"This page isn’t working localhost redirected you too many times.",可能是因为重定向次数过多。

0