django - 当我使用链接返回同一页面时,由于某种原因会话不会保存

ava*_*tar 0 django django-views django-sessions

在我的观点之一中,我正在保存一些这样的会话:

def myview(request):
    request.session['session_1'] = 'value1
    request.session['session_2'] = 'value2'
Run Code Online (Sandbox Code Playgroud)

然后,在同一视图函数以及其他应用程序上找到的其他视图上,我尝试获取如下会话值:

   session_value1 = request.session['session_1'] 
   session_value2 = request.session['session_2']
Run Code Online (Sandbox Code Playgroud)

我希望“session_1”和“session_2”的值永远不会过期,并且可以在网站上的任何位置使用(就像同一应用程序上的其他视图和其他应用程序上的视图一样)。

我的问题是,当我在同一页面/视图上(如上所述)时,当我刷新页面时,我在检索 session_1 和 session_2 值时遇到问题。但假设我转到另一个页面然后返回原始页面,“session_1”和“session_2”值就会消失。此外,“session_1”和“session_2”的值在任何其他页面/视图上都不可用。

我的 settings.py 上没有会话设置,因此会话的所有值都是默认值。

有什么想法为什么会话没有保存吗?谢谢你!

Yuj*_*ita 5

我的问题是,当我在同一页面/视图上(如上所述)时,当我刷新页面时,我在检索 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),
)
Run Code Online (Sandbox Code Playgroud)