0

私はいくつかの基本的な Django auth チュートリアルに従っています。私はviews.pyに次のものを持っています:

def login(request, onsuccess='/', onfail='/login/'):
    c = {}
    c.update(csrf(request))
    if request.method == "GET":
        return render_to_response('login.html', {'method': 'get'}, context_instance=RequestContext(request))
    else:
        user = authenticate(username=request.POST.get('username'), password=request.POST.get('password'))
        if user is not None:
            login(request, user)
            return redirect(onsuccess)
        else:
            return redirect(onfail)

ポストの後に別の return_to_render ステートメントがあり、デバッグを試みてビューに 'method': 'post' を送信したため、GET/POST ロジックが機能していることはわかっています。その値をビューに出力しているだけなので、状態に応じて GET または POST を確認できます。

これを認証ロジックに置き換えたところ、ログインにリダイレクトされるため、有効なユーザー オブジェクトが返されないようです。シェルから認証しようとしましたが、うまくいきました。

デバッグのために他に何ができるかについて何か考えはありますか?

4

1 に答える 1

1

はい、request.POST の内容を確認してください。資格情報はありますか?それらはデータベースにあるものに対応していますか? そして、Working with forms を読んでください。

于 2013-07-20T22:51:16.673 に答える