代码之家  ›  专栏  ›  技术社区  ›  shacker kravietz

Django中的条件登录重定向

  •  0
  • shacker kravietz  · 技术社区  · 15 年前

    LOGIN_REDIRECT_URL 我也知道

    <form action="?next={{ next|default:"/foo" }}" method="post">
    

    • 将它们重定向到包含

    • 如果某个用户从任何其他站点登录 佩奇,把他们送回他们想要的页面 我们在看。

    顺便说一句推特网站这是为了让登录用户的主页消失。我会考虑这样做,这将是很容易解决的,但我的主页上仍然有有用的东西,我不确定我是否希望它去认证用户。我宁愿改变方向。

    登录\u重定向\u URL 被引用,但请求对象在设置中不可用(因此我无法访问request.user.username用户名构建重定向)。很明显,我不能在django注册的模板中的“default”参数中这样做,因为在登录之前用户名是未知的。

    更新

    if request.user.is_authenticated() and not request.session.get('homepage_redir'): 
        request.session['homepage_redir'] = True
        return HttpResponseRedirect(reverse('list_view',args=[request.user.username])) 
    

    在第一次从主页登录时,用户被重定向到他们的个人页面并设置会话变量。在对主页的后续请求中,重定向不会发生(因为检测到会话变量)。从任何其他页面重定向登录的代码不受影响。

    2 回复  |  直到 15 年前
        1
  •  1
  •   S.Lott    15 年前

    返回到原来的页面 查看。

    这就是Django所做的。

    如果用户从主页登录, 将它们重定向到包含 他们的用户名(/lists/[username])。

    reverse 函数——不要在应用程序中的任何地方对URL进行编码。永远不会。

        2
  •  0
  •   Manoj Govindan    15 年前

    警告:这太老套了。

    LOGIN_REDIRECT_URL 可以是标识已登录用户并将请求重定向到该用户的相应主页的视图( /lists/username/ )

    推荐文章