HttpResponseRedirect在方法中无效

时间:2012-04-27 13:36:45

标签: python django

原始代码看起来像这样,它可以工作。

def my_index(request):
    global account
    if request.session.get('account',False):
        account=request.session['account']
    else:
        return HttpResponseRedirect("http://login.passport.com/");
    print "login check pass"
    ...

当我尝试将检查行放入方法时,就会出错。

终端打印Pos:A和Pos:B,但页面没有重定向到login.passport.com

继续打印“登录检查通行证”

我试过pdb.set_trace(),它通过了HttpResponseRedirect,但我仍然找不到任何错误。

有人给我一个线索吗?

def login_check(request):
    global account
    if request.session.get('account',False):
        account=request.session['account']
    else:
        print "Pos:A"
        return HttpResponseRedirect("http://login.passport.com/");
        print "Pos:B"

def my_index(request):
    global account
    login_check(request)
    print "login check pass"
    ...

1 个答案:

答案 0 :(得分:1)

login_checkmy_index的结果不执行任何操作。你也需要从那里归还。

另外两点:永远不会达到print Pos:B;更严重的是,你应该从不使用全局变量来存储Django中的每个请求状态。一个进程可能会持续许多请求,因此保留仅与单个请求中的信息相关的变量是危险的。