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

时间:2011-04-05 12:32:11

标签: django pinax

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

由于

2 个答案:

答案 0 :(得分:4)

只需设置LOGIN_REDIRECT_URL设置。

修改 似乎Pinax还支持另一个设置LOGIN_REDIRECT_URLNAME,它似乎与LOGIN_REDIRECT_URL做同样的事情,但设置为url名称,大概是这样你就不必调用reverse了你的settings.py文件。

对于更多“动态”重定向,pinax.apps.account.views.login视图使用pinax.apps.account.utils.get_default_redirect从以下位置查找重定向网址:

  1. 名为“next”的GET或POST参数(默认情况下,虽然可以自定义)。
  2. LOGIN_REDIRECT_URL设置
  3. LOGIN_REDIRECT_URLNAME设置
  4. get_default_redirect中的代码实际上是在会话中检查'redirect_to'键,该键可能包含设置中定义的值之一,因为该方法不会尝试查看django.conf.session在其自己的。但是,docstring声称它会检查这些设置,这似乎就是您在项目中遇到的情况。

答案 1 :(得分:0)

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

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

这应该可以解决问题。阅读了此处的文档后,提出了解决方案:http://docs.djangoproject.com/en/dev/topics/auth/