2012-09-04 147 views
2

我想跟蹤用戶 - 無需登錄。爲此,我嘗試使用sessionid或django會話。Django:sessionid cookie何時設置? [默認情況下是否可用? ]

查看:

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

目的是爲了保存特定數據爲每個瀏覽器會話。

引發錯誤:

# session_key not found 

我檢查了Cookie的瀏覽器,只有csrftokensessionid不在Cookie列表中。

我認爲sessionid保持不管是什麼?但似乎並非如此。

那麼,什麼時候創建sessionid?我如何在沒有用戶登錄的情況下管理session

回答

7

默認行爲是隻填充會話,如果您訪問或修改session字典型對象中的鍵。

爲避免此行爲,請在您的settings.py文件中將SESSION_SAVE_EVERY_REQUEST設置爲True。這確保了每個請求上都會保存會話,即使您沒有修改會話對象。

認證中間件對會話沒有影響;默認情況下,django支持匿名會話。

+0

很好的幫助..謝謝! –

相關問題