2

ログインせずにユーザーを追跡しようとしています。そのために、sessionidまたはdjangoセッションを使用してみました。

意見:

# Associating data with sessionid
ob = MyModel(session_key=request.session.session_key, data='abc')
ob.save()

意図は、ブラウザセッションごとに特定のデータを保存することでした。

エラーが発生します:

# session_key not found

ブラウザでCookieを確認しましたが、しかありませんcsrftokensessionidクッキーリストにありませんでした。

sessionid何があっても維持されると思いましたか?しかし、そうではないようです。

では、いつsessionid作成されますか?sessionユーザーログインなしで管理するにはどうすればよいですか?

4

1 に答える 1

8

sessionデフォルトの動作では、 dictのようなオブジェクトのキーにアクセスまたは変更した場合にのみセッションにデータが入力されます。

この動作を回避するには、ファイルでに設定しSESSION_SAVE_EVERY_REQUESTます。これにより、セッションオブジェクトを変更しなかった場合でも、リクエストごとにセッションが確実に保存されます。Truesettings.py

認証ミドルウェアはセッションとは関係ありません。デフォルトでは、djangoは匿名セッションをサポートしています。

于 2012-09-04T05:18:38.057 に答える