Как Django заставить хранить Session в словаре?
День добрый!
стоит задача связать сессию в джанге со своим ключём(словарем), при попытке
request.session["my_key"]=123
программа валится со словами, не могу сохранить данные в локальную БД, так ее не кто об этом и не просит, задачи хранить на постоянной основе сессии не стоит, пока программа работает пусть данные хранятся в объектах джанги, упал сервер, не беда, пользователи прелогируются.
Заранее спасибо за советы.
PS заранее еще раз скажу, нет БД.
Дополнительно:
а свой session storage для начала написан?
ну и не нужно пересказывать ошибку своими словами, нужно показывать ее traceback
Ответы:
Как насчет сначала читать доки? https://docs.djangoproject.com/en/5.0/ref/settings...
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы заставить Django хранить сессии в словаре, вам необходимо настроить соответствующий backend для хранения сессий. В Django существует несколько встроенных backend'ов для работы с сессиями, таких как база данных, файлы и кэш. Однако, если вам нужно хранить сессии в словаре, вам придется создать собственный backend.
Для начала создайте файл backend.py в вашем приложении Django и определите в нем класс, который будет отвечать за хранение сессий в словаре. Вот пример такого класса:
from django.contrib.sessions.backends.base import SessionBase class DictSessionStore(SessionBase): def load(self): session_data = {} # Здесь можно инициализировать пустой словарь return session_data def create(self): self.session_key = self._get_new_session_key() self.modified = True def save(self, must_create=False): pass # Здесь можно добавить логику сохранения сессии в словаре def delete(self, session_key=None): pass # Здесь можно добавить логику удаления сессии def exists(self, session_key): return False # Здесь можно добавить логику проверки существования сессии
Затем в файле settings.py вашего проекта Django добавьте следующую конфигурацию для использования вашего нового backend'а:
SESSION_ENGINE = 'путь.к.вашему.классу.DictSessionStore'
После этого Django будет использовать ваш собственный backend для хранения сессий в словаре. Обратите внимание, что этот пример предоставляет базовую реализацию, и вам может потребоваться дополнительная настройка в зависимости от ваших конкретных потребностей.