Django 登录后重定向到最后一个视图

Django 登录后重定向到最后一个视图,django,redirect,Django,Redirect,我已经和这个问题纠缠了一段时间,在谷歌上搜索并查看了文档,所以我想是时候问一下了。我正在尝试将我的应用重定向到登录后最后查看的页面。我正在运行django 1.2.4,到目前为止还没有运气 这个堆栈溢出线程似乎可以达到目的,但我没有成功: ... 当前,从任何视图登录后,我将被重定向到:://localhost:1100/accounts/profile/ settings.py有以下建议代码: “django.core.context_processors.request” 将此作为我的登录

我已经和这个问题纠缠了一段时间,在谷歌上搜索并查看了文档,所以我想是时候问一下了。我正在尝试将我的应用重定向到登录后最后查看的页面。我正在运行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
在我看来是最可靠的方法,其他两种方法都是有问题的。