Django-Registration 및 Auth를 사용하여 로그인시 세션 변수를 어떻게 설정합니까?
-
20-09-2019 - |
문제
Django-Registration을 사용하여 사용자를 응용 프로그램에 로그인하고 있습니다. 그 부분은 잘 작동합니다. 내가 알아낼 수없는 부분은 사용자가 로그인 할 때 사용자 정의 세션 변수를 설정하는 방법입니다. 예를 들어, userprofile 데이터가 포함 된 변수와 다른 몇 가지 기능의 출력을 채우고 싶습니다. 그런 다음이 정보를 후속보기/템플릿으로 사용할 수 있습니다.
누군가가 온라인으로 튜토리얼을 가리키거나 샘플 코드를 게시 할 수 있다면 좋을 것입니다.
Django 1.1과 Python 2.6을 사용하고 있습니다
해결책
사용자 데이터를 지속적으로 저장하고 싶지 않은 경우 (추가 세션 데이터 만)를 살펴 봅니다.
http://docs.djangoproject.com/en/dev/topics/http/sessions/
django.contrib.auth를 사용하는 경우 세션 프레임 워크가 이미 활성화 될 것입니다.
추가 사용자 데이터 (세션뿐만 아니라 데이터베이스에서)를 지속적으로 저장하려면 다른 "프로필"모델에 저장할 것입니다.
http://docs.djangoproject.com/en/dev/topics/auth/#storing-additional-information-about-users
다른 팁
@stefanw가 대체 솔루션을 제공했지만 원래 질문에 답변합니다.
로그인시 세션 데이터를 설정하는 것은 데이터를 설정하기 가장 쉬운 위치가 뷰 기능에 있기 때문에 어렵고 수정하려는 특정보기 기능은 Contrib.django.auth 앱의 일부입니다.
따라서 옵션은 다음과 같습니다.
- 세션 데이터를 설정하기 위해 작은 미들웨어 클래스를 만듭니다.
- 로그인 템플릿에 통합 될 수있는 것보다 템플릿 태그 또는 기타 코드를 만들거나 원하는 데이터를 설정할 후속 페이지를 만듭니다.
- 자신의 사용자 정의 로그인보기 기능을 작성하십시오 (실제로는 매우 쉽습니다).
행복한 Django-ing!