首页 文章

在Pinax / Django中,如何在登录后重定向到链接?

提问于
浏览
2

在Pinax中,如果我有一个需要登录的链接(即我使用@login_required装饰器),如何在登录后重定向到该链接,而不是重定向到“下一步是什么”?

谢谢

2 回答

  • 4

    只需设置LOGIN_REDIRECT_URL设置即可 .

    EDIT 似乎Pinax还支持另一个设置,LOGIN_REDIRECT_URLNAME,它似乎与LOGIN_REDIRECT_URL做同样的事情,但设置为url名称,可能是因为你不必在settings.py文件中调用 reverse .

    对于更多'dynamic'重定向,pinax.apps.account.views.login视图使用pinax.apps.account.utils.get_default_redirect从以下内容中查找重定向网址:

    • 名为'next'的GET或POST参数(默认情况下,虽然可以自定义) .

    • LOGIN_REDIRECT_URL设置

    • LOGIN_REDIRECT_URLNAME设置

    get_default_redirect 中的代码实际上是在会话中检查'redirect_to'键,该键可能包含设置中定义的值之一,因为该方法不会尝试查看它自己的 django.conf.session . 但是,docstring声称它会检查这些设置,这似乎就是您在项目中遇到的情况 .

  • 0

    将以下隐藏的输入添加到登录表单中的templates / account / login.html文件中:

    <input type="hidden" name="next" value="{{ request.GET.next }}" />
    

    这应该够了吧 . 阅读此处的文档后想出了解决方案:http://docs.djangoproject.com/en/dev/topics/auth/

相关问题