2012-05-09 3 views
0

私はDjangoMongoDBをバックエンドデータベースとして使用しています。私はすでにこれらのコードを設定しsettings.pyDjangoは私が設定したセッションを使用できますが、Webブラウザのインス​​ペクタでそれを見ることはできません

SESSION_ENGINE = 'mongoengine.django.sessions' 

'django.contrib.sessions.middleware.SessionMiddleware', 

'django.contrib.sessions', 

そして、私のview/user.pyに(コードの一部のみ)

    if user.password == password: 
        #add session information 
        if request.session.test_cookie_worked(): 
         returnmsg = "COOKIE OK" 
        else: 
         returnmsg = "COOKIE ERR" 
        response = HttpResponse(returnmsg) 
        response.set_cookie("username", username) 
        request.session['username'] = username 
        user.log.append(UserLog(time=datetime.now(), ip=request.META['REMOTE_ADDR'], login=True)) 
        user.save() 
        return response 

私は、私のサイトを実行すると、私はこの機能により、ログイン可能性があり、私のセッション設定を確認する必要がある他の機能は、usernameからresponse.sessionまで読むことができます。

returnmsgはCOOKIE ERRです。SafariのWebインスペクタを使用すると、セッションやCookieは表示されません。

ここで、Djangoはセッションデータをどこに保存しますか?それはクライアントのコンピュータ上でエンコードされたクッキーですか?それが私のクライアントのコンピュータに保存されていない場合、なぜDjangoもそれを得ることができますか? 私のコードでは、クッキーを直接設定してみましたが、まだ動作しません。

MongoEngineには何か問題がありますか?私は間違った方法でそれを使いましたか?

+0

**このコードで暗示されているように、パスワードをプレーンテキストとして保存しないことを願っています。 –

+0

その単純なテスト。私は、コンテキストでパスワードのMD5エンコードを行います。 – bxshi

答えて

1

まず、テストCookieをset_test_cookie()に設定してから、その後の要求でtest_cookie_worked()を使用してチェックしてください。

この関数は、クッキーが機能するかどうかをテストしません。テストクッキーが正常に設定されているかどうかをチェックします。クッキーが機能するかどうかを確認します。

set_test_cookie()を使用しない限り、test_cookie_worked()は常に失敗します。

+0

ありがとう、私はこれを試して、それは私に多くのエラーメッセージを与える。それは私に 'TemplateDoesNotExist'を教えていますが、テンプレートは一切使っていません。 – bxshi

+0

アップデート:私のファイヤーフォックスとサファリはクッキーをサポートしていないと伝えています。しかし、私は実際にそれを無効にしません。 – bxshi

関連する問題