Django下一页不在登录页面工作

时间:2012-09-21 19:06:33

标签: python django login

我打开浏览器,尝试访问我的Django网站。我已经退出了我的帐户,所以我被重定向到我的登录页面,我将把这个页面作为GET参数。

http://website.com/login/?next=/customer/7/54

但是,当我输入登录信息时,我会被重定向到:

http://website.com/

尽管如此,我还是想去:

http://website.com/customer/7/54

/ customer / 7/54指向一个确实有@login_required装饰器的视图,但我是在假设,我登录后仍然指向该视图。发生了什么事?

编辑:所以我意识到,我有一个隐藏的输入标签:

    <input type="hidden" name="next" value='/'>

但是,如何将GET参数'/ customer / 7/54 /传入登录模板?

2 个答案:

答案 0 :(得分:7)

根据您编辑的问题,您可以在登录页面获取下一个参数,如下所示:

<input type="hidden" name="next" value="{{ next }}">

标准django的django.contrib.auth.views.loginnext变量直接传递给模板上下文。 另外,阅读有关user authentication的文档:

  

您还可以指定包含URL的GET字段的名称   通过将redirect_field_name传递给视图来重定向到登录后。   默认情况下,该字段将被调用。

但是,你可能不需要改变它。

答案 1 :(得分:1)

对于使用自己观点的人。你必须发送&#34; next&#34;到您的模板

def login_view(request):
    '''..your logic..'''
    ctx = {'form':form,'next':next}
    return render_to_response('login.html',ctx,context_instance=RequestContext(request))