2011-02-05 50 views
0

在我的意见,我节约了几个交易日类似这样的:的Django - 会话不保存因为某些原因,当我回到同一页使用链接

def myview(request): 
    request.session['session_1'] = 'value1 
    request.session['session_2'] = 'value2' 

然后在相同的查看功能并且还对其他应用程序中其他的观点,我试图让这样的会话值:

session_value1 = request.session['session_1'] 
    session_value2 = request.session['session_2'] 

我想的价值观为“session_1”和“session_2”永不过期,也可在任何地方该网站(与其他应用程序上的其他视图和其他应用程序的视图一样)。

我的问题是,当我在同一页面/视图(刚刚在上面描述),当我刷新页面时,我必须检索session_1和session_2值的问题。但是,让我们假设如果我转到其他页面,然后返回到原始页面,那么'session_1'和'session_2'值将消失。此外,'session_1'和'session_2'的值在任何其他页面/视图上都不可用。

我的settings.py中没有会话设置,所以会话的所有值都是默认值。

任何想法为什么会议没有保存?谢谢!

回答

3

我的问题是,当我在 同一页/视图(上面刚刚描述) 当我做了刷新页面我有 来检索session_1和 session_2值的问题。

那么你是在相同的视图上设置和检索?我可以看到那个观点吗?你是真的分配'value1'还是有你的观点导致问题的任何机会?

session_key页面视图之间是否相同?

复制并粘贴到您的根urls.py并参观/session-test/

from django import http 

def session_test_1(request): 
    request.session['test'] = 'Session Vars Worked!' 
    return http.HttpResponseRedirect('done/?session=%s' % request.session.session_key) 

def session_test_2(request): 
    return http.HttpResponse('<br>'.join([ 
     request.session.session_key, 
     request.GET.get('session'), 
     request.session.get('test', 'Session is Borked :(') 
     ])) 


urlpatterns += patterns('', 
     (r'^session-test/$', session_test_1), 
     (r'^session-test/done/$', session_test_2), 
) 
+0

的问题是,当我访问其他网页的其他网页重置我的会话的值。当你问我session_key是否在页面视图之间相同时,它触发我想如果有什么我改变了会话值,并且确实存在。 – avatar 2011-02-05 20:21:01

相关问题