내 맞춤 Django 미들웨어에서 session_key
에 액세스 할 수 없습니다. 내가 사용하여 액세스하려고 : 내 settings.py
에 MIDDLEWARE_CLASSES
의 끝에서 내 미들웨어를 넣어 후 django.contrib.sessions.middleware.SessionMiddleware
한Django : 미들웨어의 session_key에 액세스하는 방법
Session matching query does not exist.
:
session = Session.objects.get(pk=request.session._session_key)
또는
session_key = request.COOKIES[settings.SESSION_COOKIE_NAME]
session = Session.objects.get(pk=session_key)
내가 오류 파일.
미들웨어에서 세션 키를 설정할 수 있지만 전체 페이지가 표시된 후에 session_key가 생성/액세스 될 수있는 것처럼 보입니다. 페이지가 처음으로 표시 될 때 {{ request.session.session_key }}
은 내 서식 파일에 None
을 반환합니다. 페이지를 새로 고침하면 session_key
이 표시됩니다. session_key
에 액세스하는 방법에 대한 정보는 매우 환영합니다.
왜 그 검색어를 사용 하시겠습니까? 왜'request.session'에 직접 액세스하지 않는가? –
다음과 같은 django_session 테이블을 참조하는 테이블이 있습니다.session = models.ForeignKey (Session) 예를 들어 request.session을 사용하여 인스턴스를 만들면 다음과 같은 오류가 발생합니다. " ":"Visitor.session "은"Session "인스턴스 여야합니다. 그래서 "세션"인스턴스를 얻기 위해 세션 테이블을 쿼리하려고합니다. –
db를 치고있을 때 실제로 세션 키가 있습니까? 새로운 세션은 세션 미들웨어의'process_response'에서만 생성됩니다. 뷰에서 아무 것도 저장해야하기 때문에 뷰가 완전히 처리되기 전에 할 수 없습니다. – ilvar