django - сессии почему-то не сохраняются, когда я возвращаюсь на ту же страницу по ссылке - PullRequest
0 голосов
/ 05 февраля 2011

В одном из моих представлений я сохраняю несколько таких сессий:

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, поэтому все значения для сессий являются значениями по умолчанию.

Есть мысли, почему сессии не сохраняются? Спасибо!

1 Ответ

4 голосов
/ 05 февраля 2011

Моя проблема в том, что когда я нахожусь на той же странице / представлении (только что описанном выше), когда я обновляю страницу, у меня возникают проблемы с получением значений session_1 и session_2.1004 * То есть вы устанавливаете и извлекаете то же представление?Могу ли я увидеть это мнение?Вы буквально присваиваете 'value1' или есть какой-то другой шанс, что ваше мнение вызывает проблемы?

Является ли session_key одинаковым между просмотрами страниц?

Скопируйте и вставьте это в свой root 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),
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...