如何在用户登录后将用户重定向回他们尝试访问的页面? (Django的)

时间:2012-03-07 03:43:48

标签: python django

所以目前我正在使用@login_required阻止来自用户的某些页面并重定向它们,告诉他们需要登录。但我无法理解的是我如何“让他们”进入他们所在的页面一旦他们登录就试图去。目前我只是使用一个典型的render_to_response('有一定的视图'),但如果我希望那个响应能够在他们试图访问的任何地方。我该如何编码?

3 个答案:

答案 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 /)。如果   登录失败,重新显示登录表单。