티스토리 뷰
728x90
반응형
장고에서는 비밀번호를 변경하는 PasswordChangeForm을 지원합니다.
views.py에서 PasswordChangeForm을 프론트로 전달해주고, 프론트에서 폼을 확인해봅시다.
from django.contrib.auth.forms import PasswordChangeForm
def mypage(request):
form = PasswordChangeForm(request.user, request.POST)
return render(request, "mypage.html", {"form":form})
mypage.html에서는 {{form}}을 원하는 곳에 넣어주면 되구요.
기본적으로 아래와 같이 현재 비밀번호, 변경할 비밀번호, 비밀번호 확인 input이 있습니다.
사용자가 비밀번호를 변경하러 들어왔을 때(GET)는 위의 PasswordChangeForm을 전달해주고,
비밀번호를 변경했을 때(POST)는 사용자가 입력한 값들을 가져와 비밀번호를 변경해주면 되겠습니다.
from django.contrib.auth import update_session_auth_hash
from django.contrib.auth.forms import PasswordChangeForm
def mypage(request):
if request.method == 'POST':
# 비밀번호 변경 폼 확인
form = PasswordChangeForm(request.user, request.POST)
if form.is_valid():
user = form.save()
update_session_auth_hash(request, user) # 세션을 업데이트해서 로그인 유지
...
else:
form = PasswordChangeForm(request.user, request.POST)
...
728x90
반응형
'프로그래밍 > Python' 카테고리의 다른 글
[Python] AWS CLI(Command Line Interface) 사용법 (0) | 2023.03.04 |
---|---|
[Python] requests 모듈에서 프록시 설정하는 방법 (0) | 2023.02.24 |
[python] pymongo MongoClient regex, not regex (0) | 2023.01.18 |
[오류해결] pip install pycrypto : legacy-install-failure (0) | 2023.01.13 |
[오류해결] ValueError: Unable to find resource t64.exe in package pip._vendor.distlib (0) | 2023.01.12 |
댓글