我需要在另一个网站的Python / Django开发的网站中显示特定页面。 如果用户登录到python / Django站点,则显示请求的页面。目前我正在使用' request.user.is_authenticated()'方法来检查用户是否已登录。 如果用户尚未登录,则应重定向到/ login页面,并且一旦用户输入其登录凭据,就会正确地重定向到特定的请求页面。
问题是如果用户未登录,则应重定向到登录页面。在这种情况下,URL会发生变化。我们需要在用户登录后重定向回到之前的URL。我如何实现这一目标? URL调用不是静态URL。 URL中的参数会更改。我正在Django中寻找一些内置的方法来实现这个目标..
有些人有更好的想法来解决这个问题。
提前致谢。
答案 0 :(得分:2)
login_required
的默认实现接受next
参数,该参数会导致用户在成功登录后重定向到该网址。
https://docs.djangoproject.com/en/dev/topics/auth/default/#the-login-required-decorator
但是当然您可以使用几行重新创建此功能..在登录视图中,检查是否存在名为get
或next
的{{1}}参数,然后重定向到它成功登录后。
将用户发送到登录页面的视图应该只是附加redirect_url
这很简单。