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



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

谢谢

只需设置LOGIN_REDIRECT_URL设置。

编辑似乎Pinax还支持另一种设置,LOGIN_REDIRECT_URLNAME,这似乎与LOGIN_REDIRECT_URL做同样的事情,但被设置为url名称,大概这样你就不必在settings.py文件中调用reverse了。

对于更多的"动态"重定向,pinax.apps.account.views.login视图使用pinax.apps.account.utils。get_default_redirect从以下内容查找重定向URL:

  1. 一个名为'next'的GET或POST参数(默认情况下,尽管可以自定义)。
  2. LOGIN_REDIRECT_URL设置LOGIN_REDIRECT_URLNAME设置

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

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

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

应该可以了。在阅读这里找到的文档后提出了解决方案:http://docs.djangoproject.com/en/dev/topics/auth/

相关内容

  • 没有找到相关文章

最新更新