0

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

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"
    ...
4

1 回答 1

1

您不会对login_checkwithin的结果做任何事情my_index。你也需要从那里归还它。

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

于 2012-04-27T13:54:53.220 回答