2016-03-21 50 views

回答

0

新會話的第一個請求沒有會話密鑰。爲了從第一次請求跟蹤用戶會話,使用自定義的標識符,這樣的事情:

import base32_crockford 
import uuid 
... 
MY_SESSION_KEY='my_custom_session_key' 
... 
def process_request(self, request): 
     if MY_SESSION_KEY not in request.session: 
      if request.session.session_key is None: 
       my_key = base32_crockford.encode(uuid.uuid4()).lower() 
       request.session[MY_SESSION_KEY] = my_key 
      else: 
       request.session[MY_SESSION_KEY] = request.session.session_key 

     session_instance = request.session[MY_SESSION_KEY] 

該代碼將使用現有的會話密鑰(如果存在),或創建一個新的隨機密鑰(我編碼與base32更容易複製粘貼的值)。如果您願意,可以直接使用UUID的字符串值。

+1

請將此添加到您的原帖,並刪除該答案。 –

+0

我回答了我自己的問題,以防其他人有類似的情況。 – Darren