현재 선택 항목과 핸들러 클래스 (하위 클래스는 object
)를 저장하고 선택을 처리하는 다른 페이지로 리디렉션하는 관리 작업이 있습니다. 그러나 어떤 이유로이 작업을 수행 할 때마다 전체 세션이 손실됩니다.Django 세션이 갑자기 데이터를 잃습니다.
실제로 어떤 세션 키도없는 view_function을 호출하는 동안 오류가 발생합니다. 'action_options'. 실제로 발생하는 것을 들여다 보아 변수는 세션에서 적절하게 설정되지만보기가 호출 될 때까지는 세션이 완전히 비어 있습니다. 이전에 분명히 있던 관리자 로그인을 포함하여 세션은 완전히 비어 있습니다. 다른 모든 페이지 (즉, 내장 관리 페이지)는 정상적으로로드됩니다. 여기
는 작업입니다 :def myaction(self, request, queryset):
opts = request.session.setdefault('action_options', {})
opts['queryset'] = queryset
opts['handler'] = MyHandlerClass
request.session.modified = True
return HttpResponseRedirect(reverse('myapp.views.handler_view'))
그리고 여기에 옵션을 설정 현재 그냥 인쇄보기,이다 :
def handler_view(request):
opts = request.session['action_options']
return HttpResponse(str(opts))
나는 또한, 직접 즉 request.session['queryset'] = queryset
을의 검색어를 저장하는 시도,하지만 난 같은 행동을 취하십시오. 그러나 기본 키 목록을 저장하면 해당 키가 삭제됩니다. 나는 다음과 같은 구성으로, 조니 캐시를 사용하고
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'johnny.middleware.LocalStoreClearMiddleware',
'johnny.middleware.QueryCacheMiddleware',
)
: 참고로
가 여기 내 미들웨어 정의의 IT가 실행되기 전에CACHES = {
'default' : dict(
BACKEND='johnny.backends.memcached.MemcachedCache',
LOCATION=['127.0.0.1:11211'],
JOHNNY_CACHE=True,
)
}
JOHNNY_MIDDLEWARE_KEY_PREFIX = 'jc_myproj'