Совместное использование данных переменных сеанса между несколькими API Django Rest Framework - PullRequest
0 голосов
/ 25 марта 2019

У меня есть два API Django.Я устанавливаю переменную сеанса в одном из API и пытаюсь получить те же данные переменной сеанса в другом API.Но проблема в том, что данные переменной сеанса могут быть прочитаны только в API, в котором была установлена ​​переменная сеанса.

Например:

API 1

@api_view(['GET'])
def api_one(request):
    request.session['d'] = 'data_value'
    request.session.modified = True

API 2

@api_view(['GET'])
def api_two(request):
    print(request.session['d'])
    # The above statement returns KeyError stating that key ['d'] doesn't 
    # exists

Итак, в приведенном выше примере я устанавливаю request.session ['d'] в 'data_value' в api_one и пытаюсь получить значение request.session ['d'] в api_two.Но это не работает, так как я получаю «KeyError», когда пытаюсь получить request.session ['d']

Ниже приведены мои настройки в settings.py:

SESSION_COOKIE_HTTPONLY = True
SESSION_EXPIRE_AT_BROWSER_CLOSE = True
SESSION_COOKIE_AGE = 86400
SESSION_SAVE_EVERY_REQUEST = True
SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"

Я могу четко заметить, что Django делает свое дело на стороне БД, поскольку новые записи сеанса создаются в таблице django_session, как и ожидалось.

Итак, я хотел знать, возможно ли установить переменные сеанса в одном APIи использовать их в других API.

Спасибо заранее.

...