所以目前我正在使用@login_required阻止来自用户的某些页面并重定向它们,告诉他们需要登录。但我无法理解的是我如何“让他们”进入他们所在的页面一旦他们登录就试图去。目前我只是使用一个典型的render_to_response('有一定的视图'),但如果我希望那个响应能够在他们试图访问的任何地方。我该如何编码?
答案 0 :(得分:0)
您可以将url参数传回您的登录页面,并在用户成功完成登录后使用该参数指导用户。
答案 1 :(得分:0)
@login_required通常会将你的redirect_field_name(默认为“next”)传回给你,例如:/ accounts / login /?next = / polls / 3 /。因此,在验证和登录用户后,在登录视图中,您可以执行类似
的操作response = HttpResponseRedirect(next)
# Do whatever else you need to do here with the response object
return response
请参阅https://docs.djangoproject.com/en/1.3/topics/auth/#the-login-required-decorator
上的文档答案 2 :(得分:0)
来自login requiered decorator docs:
默认情况下,应将用户重定向到的路径 成功的身份验证存储在名为的查询字符串参数中 “下一个”。
通常在登录完成后,它会转到“下一个”网址
这是django.contrib.auth.views.login的作用:
如果通过GET调用,它会显示一个POST为相同的登录表单 URL。更多相关内容。
如果通过 POST 调用,它会尝试记录 user in。如果登录成功,视图将重定向到URL 在下一个中指定。如果未提供next,则重定向到 settings.LOGIN_REDIRECT_URL(默认为/ accounts / profile /)。如果 登录失败,重新显示登录表单。