Django Session Middleware, вызывающие исключения

Я не могу понять, что здесь происходит. У меня есть сессия, которая сохраняется, когда пользователь обращается к url типа: website.com/client, где client - это клиент, использующий систему. Это хранится в сессии с помощью django.contrib.sessions

Вот моя декларация промежуточного ПО:

MIDDLEWARE = [
    'debug_toolbar.middleware.DebugToolbarMiddleware',

    # must be before session middleware
    'utils.middleware.routers.ClientDatabaseRouterMiddleware',
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.security.SecurityMiddleware',

    'django.middleware.csrf.CsrfViewMiddleware',

    # custom middleware
    # 'utils.middleware.CookieMiddleware.CookieMiddleware',
    # 'utils.middleware.ExtendSession.ExtendSessionMiddleware',
    'utils.middleware.UniversalDataMiddleware.UniversalDataMiddleware',
    'apps.fort.middleware.LoginRequiredMiddleware',
    'utils.middleware.TimezonesMiddleware.TimezonesMiddleware',
    'utils.middleware.SessionMiddleware.SessionMiddleware',  # maybe rewrite this?
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    # 'simple_history.middleware.HistoryRequestMiddleware',           # auto adds user who makes change
    # 'utils.middleware.Profilers.ProfileMiddleware',
    # anything under this is excluded when decorator @property_not_important is called
    'utils.middleware.CheckPropertyMiddleware.ExcludePropertyMiddleware',
    # allow exclusion
    'utils.middleware.CheckPropertyMiddleware.CheckPropertyMiddleware',
    # 'utils.middleware.ExcludeMiddleware.ExcludeMiddleware',
]

Он также находится в INSTALLED_APPS.

Моя проблема в том, что когда я делаю git client url django сохраняет сессию, но когда я возвращаюсь на основной сайт, поиск сессии вызывает 500 ошибку, потому что сессии хранятся в каждой клиентской БД... как я могу это исправить?

Если я вручную удаляю сессию sessionid, созданную django в браузере, мой сайт загружается без 500, поэтому я не уверен, как ее удалить.

Проблема, как я уже говорил, заключалась в том, что моя таблица django_sessions хранилась в другой БД, чем моя БД по умолчанию, поскольку я основываюсь на client_url, чтобы определить, какая версия системы используется (т.е. для какого клиента).

Чтобы исправить это, мне пришлось немного изменить промежуточное ПО сессии, предоставляемое Django: django.contrib.sessions.middleware.SessionMiddleware чтобы я мог проверять запрос на наличие переменной client_url, потому что это был единственный способ, которым я получал сохранение или обновление сессии.

Вот измененный код, который я использовал вместо: django.contrib.sessions.middleware.SessionMiddleware

Вернуться на верх