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

Cod*_*ium 37 django django-authentication

我在视图中使用Django进行用户登录:

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

登录后,当我再次转到用户/登录时,我可以第二次登录.我提交表格并获得:

当前网址(accounts/profile /)与其中任何一个都不匹配.

我还没有申报这个网址urls.py.

我做错了什么?为什么框架要重定向到此URL?

Tra*_*ian 76

django.contrib.auth.views.loginaccounts/profile/登录后将您重定向到右侧.
您可能希望LOGIN_REDIRECT_URLsettings.py文件中设置任何您喜欢的内容.

  • 这是正确的,虽然它很奇怪,它被编码为重定向到某个不存在的地方.当然重定向到'/'将是一个更合理的默认值? (7认同)

dan*_*era 7

在doc中解释:

(accounts/profile/is ...)当contrib.auth.login视图没有下一个参数时,登录后重定向请求的URL.

由于您尚未通过身份验证,因此您的请求会重定向到此网址.为了避免重定向,您应该在发送用户之前注销用户user/login,创建自定义登录视图或附加Next参数.