Django 登录后重定向到最后一个视图
我已经和这个问题纠缠了一段时间,在谷歌上搜索并查看了文档,所以我想是时候问一下了。我正在尝试将我的应用重定向到登录后最后查看的页面。我正在运行django 1.2.4,到目前为止还没有运气 这个堆栈溢出线程似乎可以达到目的,但我没有成功: ... 当前,从任何视图登录后,我将被重定向到:://localhost:1100/accounts/profile/ settings.py有以下建议代码: “django.core.context_processors.request” 将此作为我的登录按钮链接:Django 登录后重定向到最后一个视图,django,redirect,Django,Redirect,我已经和这个问题纠缠了一段时间,在谷歌上搜索并查看了文档,所以我想是时候问一下了。我正在尝试将我的应用重定向到登录后最后查看的页面。我正在运行django 1.2.4,到目前为止还没有运气 这个堆栈溢出线程似乎可以达到目的,但我没有成功: ... 当前,从任何视图登录后,我将被重定向到:://localhost:1100/accounts/profile/ settings.py有以下建议代码: “django.core.context_processors.request” 将此作为我的登录
我还确保在我的views.py文件中导入RequestContext:
从django.template导入请求上下文
我的印象是这不起作用。我现在也注意到了
登录URL中包含部分下一个URL:
//本地主机:1100/帐户/登录/?下一步=
建议?
提前谢谢 如果在视图上使用装饰器,它将自动为您执行此操作
经验证明了这一点,并在文件中进行了解释:
如果用户未登录,请重定向
到settings.LOGIN\u URL,传递
查询中的当前绝对路径
一串例子:
/accounts/login/?next=/polls/3/
正如sdolan所说,您可以使用登录所需的装饰器,但也有一些可能性:
- 形式行动:
<form method="post" action="{% url django.contrib.auth.views.login %}?next={{request.path}}">
- 下一个隐藏字段:
<input type="hidden" name="next" value="{{request.path}}" />
- 带有登录表单的链接:
<a href="{% url django.contrib.auth.views.login %}?next={{request.path}}">Login</a>
要使用它们,必须在相应的视图中传递请求上下文。这里可以找到这样做的例子:谢谢sdolan,所以我在视图中使用了文本装饰器,比如:@login\u required def wine\u review\u page(request,wine\u id):这是一种不正确的方式吗?我不知道如何设置我猜的下一个链接。+1如果您使用的是django股票登录系统,这个方法
href=“{%url django.contrib.auth.views.login%}?next={{request.path}}>login
在我看来是最可靠的方法,其他两种方法都是有问题的。