Вопрос решён!
Дело в том, что при каждом вызове функции создавался новый экземпляр класса сессии. Из-за чего сохранённые в ней значения становились недоступны. Для решения это проблемы необходимо создать экземпляр класса в функции лишь один раз. Значения из сессии можно будет достать только в рамках одного запроса. Чтобы значения были доступны на протяжении нескольких запросов необходимо описать дополнительный класс SessionPerRequestMiddleware.
Для этого в папке приложения нужно создать файл middlewares.py. В этом файле нужно описать класс:
from django.contrib.sessions.backends.db import SessionStore
class SessionPerRequestMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
# Создаем экземпляр класса сессии и сохраняем его в атрибуте request.session
session = SessionStore(request.session.session_key)
request.session = session
response = self.get_response(request)
# Сохраняем изменения в сессии
session.save()
return response
Далее надо указать этот класс в настройках проекта
MIDDLEWARE = [
'PC_Components.middlewares.SessionPerRequestMiddleware'
]
После этого можно обращаться к значениям сессии в рамках множества запросов.