1

사용자가 로그 아웃 할 때 Django logout을 사용하면 모든 세션 값이 플러시됩니다. 사용자가 로그 아웃하더라도 일부 세션 값을 유지하는 방법이 있습니까?django - 사용자 로그 아웃 후 세션 값 저장

+0

당신이 "유지"가 무엇을 의미합니까? 세션은 특정 사용자를위한 세션이므로 사용자가 로그 아웃하면 세션을 벗어나는 것이 의미가 없습니다. 'django.contrib.auth.logout'가 세션 데이터를 플러시하기 전에 db에 몇몇 값을 저장해야한다면, 간단히'django.contrib.auth.views.logout'을 오버라이드하면됩니다. – gorus

+1

다음과 같이하십시오. 사용자가 로그 아웃 할 때 세션 변수에 사용자 이름을 유지하여 웹 사이트로 돌아올 때 사용자를 "인식"할 수있게하여 "hello user"를 볼 수 있습니다. – avatar

답변

4

이렇게하려면 세션 대신 쿠키를 사용하는 것이 좋습니다. 로그인보기에서

# views.py, login view 
# After you have authenticated a user 
username = 'john.smith' # Grab this from the login form 

# If you want the cookie to last even if the user closes his browser, 
# set max_age to a very large value, otherwise don't use max_age. 
response = render_to_response(...) 
response.set_cookie('the_current_user', username, max_age=9999999999) 

:

remembered_username = request.COOKIES.get('the_current_user', '') 

밀어 디스플레이로 템플릿 위 :

Hello {{ remembered_username }} 

참조 : http://docs.djangoproject.com/en/1.2/ref/request-response/#django.http.HttpResponse.set_cookie

+0

"글로벌 이름 'set_cookie'가 정의되지 않았습니다." 가져올 항목은 무엇입니까? – avatar

+0

set_cookie는 HttpResponse 객체의 메서드이므로 아무 것도 가져올 필요가 없습니다. 샘플 코드의 사본을 붙여 넣을 수 있습니까? –

관련 문제