在Pinax中,如果我有一个需要登录的链接(即我使用@login_required装饰器),如何在登录后重定向到该链接,而不是重定向到“下一步是什么”?
谢谢
只需设置LOGIN_REDIRECT_URL设置即可 .
EDIT 似乎Pinax还支持另一个设置,LOGIN_REDIRECT_URLNAME,它似乎与LOGIN_REDIRECT_URL做同样的事情,但设置为url名称,可能是因为你不必在settings.py文件中调用 reverse .
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声称它会检查这些设置,这似乎就是您在项目中遇到的情况 .
get_default_redirect
django.conf.session
将以下隐藏的输入添加到登录表单中的templates / account / login.html文件中:
<input type="hidden" name="next" value="{{ request.GET.next }}" />
这应该够了吧 . 阅读此处的文档后想出了解决方案:http://docs.djangoproject.com/en/dev/topics/auth/
2 回答
只需设置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声称它会检查这些设置,这似乎就是您在项目中遇到的情况 .将以下隐藏的输入添加到登录表单中的templates / account / login.html文件中:
这应该够了吧 . 阅读此处的文档后想出了解决方案:http://docs.djangoproject.com/en/dev/topics/auth/