Django: две сессии в одном браузере
У меня есть Django webapp, который позволяет пользователям сотрудничать. Каждому пользователю предоставляется ссылка с уникальным кодом, который они нажимают, чтобы перейти на мой сайт. При первом посещении страницы я храню этот уникальный код в request.session
, а затем при последующих посещениях страницы я извлекаю его для идентификации записи пользователя в БД. Я также храню различные материалы о пользователе и их сеансе в request.session
.
Я хотел бы разрешить две сессии в разных окнах / вкладках одного и того же браузера. Это делается для упрощения тестирования. Мои коллеги тратят много времени на тестирование нескольких пользователей, использующих сайт одновременно. До сих пор я инструктировал их использовать разные браузеры или разные профили браузеров, так что cookie сеанса не используется. Но они всегда забывают эту инструкцию (или делают это неправильно) и в конечном итоге запутываются, когда приложение работает не так, как ожидалось.
Моя идея состоит в том, чтобы поместить уникальный код пользователя (называемый user_id
) в каждый URL-адрес, а затем подразделить request.session
на несколько словарей, поэтому мой класс-представление будет иметь следующее:
def dispatch(...): user_id = kwargs['user_id'] self.request_session = self.request.session[user_id]
Затем используйте эту переменную self.request_session
как обычно:
self.request_session['time_started'] = now ...
И затем, прежде чем возвращать ответ, назначьте его обратно:
self.request.session[user_id] = self.request_session
Я думаю, что это должно быть хорошо, поскольку собственный код сохранит две сессии в двух отдельных словарях, но, возможно, он сломается, если Django (или даже стороннее приложение) сохранит что-то в request.session. Удивление, если у кого есть рекомендация по другому способу справиться с этим.
- Можно ли использовать DjExperExceptionReporterFilter с чем-то другим, чем AdminEmailHandler?
- Django REST Framework – отдельные разрешения для каждого метода
- Как получить список всех пользователей с определенной группой разрешений в Django
- некоторые журналы django отсутствуют, когда хост в uwsgi с несколькими процессами
- Есть ли способ сделать тесты на освежение неудачными при неопределенных тестах?
- Как профилировать обработку исключений в Python?
- Страница входа в систему отображается, даже если пользователь уже зарегистрирован
- coreapi должен быть установлен для использования 'get_schema_fields ()'
- Как отлаживать ошибку «Не все временные сообщения могут быть сохранены» в django?
- Предоставить значение по умолчанию для поля ForeignKey для существующих записей в Django
- Сохранение фильтров в Django Admin
- добавить поля в admin.py из ManyToMany
- выберите данные из базы данных из моего приложения django
- Создание суперпользователя Django в PyCharm
- Создание читаемых html с шаблонами django
- FullCalendar и django