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. Удивление, если у кого есть рекомендация по другому способу справиться с этим.