Python 登录后如何使用Django重定向到原始请求

Python 登录后如何使用Django重定向到原始请求,python,django,Python,Django,我练习了如何使用django登录,但它不能在登录前重定向到页面 请教我怎么做谢谢 我的项目名称是:proj 我有一个应用程序名:app1 当我去http://127.0.0.1:8000/f/index/ 它将重定向到http://127.0.0.1:8000/accounts/login/?next=/f/index/ 输入用户名和密码后, 我想重定向到http://127.0.0.1:8000/f/index/ 通过参数?next=/f/index/但不知道如何操作 app1/vi

我练习了如何使用django登录,但它不能在登录前重定向到页面 请教我怎么做谢谢

我的项目名称是:proj 我有一个应用程序名:app1

当我去http://127.0.0.1:8000/f/index/ 它将重定向到http://127.0.0.1:8000/accounts/login/?next=/f/index/

输入用户名和密码后, 我想重定向到http://127.0.0.1:8000/f/index/ 通过参数?next=/f/index/但不知道如何操作

app1/views.py:

from django.contrib.auth.decorators import login_required
@login_required
def index(request):
       logger.info('test')
       ....
proj/url.py:

urlpatterns = patterns('',
    url(r'^accounts/login/$', 'proj.views.login'),
    url(r'^accounts/logout/$', 'proj.views.logout'),
    url(r'^accounts/auth/$', 'proj.views.auth_view'),
proj/views.py

from django.shortcuts import render_to_response
from django.http import HttpResponseRedirect
from django.contrib import auth
from django.core.context_processors import  csrf

def login(request):
    c={}
    c.update(csrf(request))
    return render_to_response('proj/login.html',c)

def auth_view(request):
    username = request.POST.get('username','')
    password = request.POST.get('password','')
    user = auth.authenticate(username=username,password=password)

    if user is not None:
        auth.login(request,user)
        # return HttpResponseRedirect(request.POST.get('next')) #not work
    else:
        return HttpResponseRedirect('/accounts/invalid')
proj/login.html:

{% if form.errors %}
    <p class="error">Sorry.that's not valid  </p>
{% endif %}


<form action="/accounts/auth/?next={{ request.get_full_path|urlencode }}" method="post">{% csrf_token %}
    <label for="username" >User name:</label>
    <input type="text" name="username" value="" id="username">
    <label for="password" >Password:</label>
    <input type="password" name="password" value="" id="password">
    <input type="submit" value="login" />
</form>     
在views.py中尝试以下操作:


当您键入url且之前未登录时,django重定向到url:http://127.0.0.1:8000/accounts/login/?next=/f/index/ 输入用户名和密码后,单击提交按钮,django会自动将您重定向到http://127.0.0.1:8000/f/index/
使用URLSolver。

我不清楚您想要实现什么。检查是否要将用户重定向到登录页。您是否收到任何错误?访问索引视图时发生了什么?或者成功登录后重定向到哪个页面?对不起,我编辑了我的问题来描述细节。当我尝试返回HttpResponseRedirectrequest.POST.get'next'时,出现错误'NoneType'对象没有属性'find'和requesturlishttp://127.0.0.1:8000/accounts/auth/?next= 似乎无法获取下一个参数
if user is not None:
        auth.login(request,user)
        return HttpResponseRedirect('/f/index/')