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。そこからも返却する必要があります。

他の 2 つのポイント:print Pos:B到達することはありません。もっと深刻なことに、グローバル変数を使用してリクエストごとの状態を Django に保存しないでください。プロセスは多くのリクエストに対応する可能性があるため、単一のリクエスト内の情報にのみ関連する変数を保持するのは危険です。

于 2012-04-27T13:54:53.220 に答える