2014-06-26 36 views
0

將django _session_key作爲特定會話的標識符存儲在另一個模型中是個不錯的主意。使用Django會話密鑰在視圖之間使用請求會話

我正在使用django _session_key在視圖內存儲唯一的會話,然後我將_session_key保存在另一個對象中。

def myview(request): 

    if request.method == "POST": 
     myform = Myform(request.form) 

     if myform.is_valid(): 
      name = myform.cleaned_data['name'] 
      title = myform.cleaned_data['title'] 
      author_session = request.session._session_key 
      # Creating a model object 
      model1(name=name, title=title, author_session=author_session).save() 

      return HttpResponseRedirect(reverse('myview2', 
               kwargs={'name':model1.name})) 
     else: 
      # Some renders 
    else: 
     # Some other renders 

def myview2(request, name): 

    obj1 = model1.objects.get(name=name) 

    if request.session._session_key == obj1.author_session: 
     # Some render 
    else: 
     # Some other render 

現在,我想是這樣的使用_session_key作爲唯一身份不同意見之間的會話是一個好主意。有沒有其他方法來確定視圖之間的獨特會話?

P.S-我讀過使用_session_key通常不予理睬。

也請建議如何編寫測試的意見

回答

2

沒有之間的會話,這完全是倒退。您應該將model1實例的鍵存儲在第一個視圖中的會話中,並在第二個視圖中將其取出。

+0

但是,這樣做有什麼問題,我從中得到了預期的結果。我不應該將會話實例保存在模型中嗎? –