2014-11-24 54 views
0

我開始瞭解會話對象,並且遇到了一個我相信很簡單的問題。如何在單獨的表單頁面上存儲和訪問存儲在會話對象中的值

我認爲會話對象的想法是存儲一個變量,以便以後可以訪問?在下面的減弱一段代碼的第一print語句工作正常打印「這是自我請求2」,但第二個原因這個錯誤:

Exception Type: KeyError

Exception Value: 0 Exception Location: /Library/Python/2.7/site-packages/django/contrib/sessions/backends/base.py in getitem, line 47

爲什麼不工作的第二個print語句?爲什麼我的表單的第二步不能訪問self.request.session[0]

任何幫助/提示是非常讚賞

感謝

代碼

class SurveyWizardOne(SessionWizardView):  

    def get_context_data(self, form, **kwargs): 
     context = super(SurveyWizardOne, self).get_context_data(form, **kwargs) 
     if self.steps.current in ['5','6','7','8','9']: 
      step = int(self.steps.current) 

      if step in (5, 6, 7): 

       self.request.session[0] = 2 
       print 'This is self request', self.request.session[0]     

      elif step == 8:     

       print 'This is STILL self request', self.request.session[0] 

     return context 

回答

1

嘗試使用密鑰存儲值:

request.session['fav_color'] = 'red' #Set the value 
fav_color = request.session.get('fav_color', 'red') #Read the value else read a default one 

Django Doc:一個包裝圍繞JSON序列化來自django.core.signing。只能序列化基本數據類型。

此外,JSON 僅支持字符串鍵,請注意,如預期

中的request.session使用非字符串鍵無法工作
相關問題