Django Sessions, использующие cached_db и redis, не получают и не сохраняют данные сессии

Зависимости

Django==3.2.6
redis>=3.5.3,<3.6.0
django-redis>=4.12.1,<4.13.0

Настройки

SESSION_COOKIE_SAMESITE = None
SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"
CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://:12345678@redis:6379/1",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
        },
    }
}

MIDDLEWARE = [
    "django.middleware.security.SecurityMiddleware",
    "django.contrib.sessions.middleware.SessionMiddleware",
    "django.middleware.common.CommonMiddleware",
    "django.middleware.csrf.CsrfViewMiddleware",
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    "django.contrib.messages.middleware.MessageMiddleware",
    "django.middleware.clickjacking.XFrameOptionsMiddleware",
    "corsheaders.middleware.CorsMiddleware",
]

Тестовое представление API

@api_view(["GET"])
def test(request):
  print(request.session.__dict__)
  if not request.session.session_key:
    request.session.save()
  if not "user_id" in request.session:
    request.session["user_id"] = "test"
    request.session.modified = True
  
  print(request.session.__dict__)
  
  return Response({"hello"})

Как вы можете видеть, я запустил сессию для принудительного сохранения, а также изменил значение modified на True

При каждом запросе к этому API ни одна из данных сессии не сохраняется. Ключ_сессии также всегда не сохраняется. Кто-нибудь знает, почему так происходит?

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