본문 바로가기
Web/Django

[Django] 권한과 인증 기능 사용해보기 - Part 5 (회원 정보 수정 기능 만들기)

by char_lie 2023. 3. 26.
반응형
반응형

django를 활용해서 회원 정보 수정 기능을 구현해 보자.

기본적인 코드 형태는 아래 Part 4를 따라가니 참고하자

https://edder773.tistory.com/106

 

[Django] 권한과 인증 기능 사용해보기 - Part 4 (회원가입 기능 만들기)

django를 활용해서 회원가입 기능을 구현해보자. 기본적인 코드 형태는 아래 Part 3을 따라가니 참고하자 https://edder773.tistory.com/105 [Django] 권한과 인증 기능 사용해보기 - Part 3 (회원가입 기능 만들

edder773.tistory.com

권한과 인증 기능을 이해하고 실제로 회원 정보 수정 기능을 구현해 보자!


실습

바로 회원 정보 수정 기능을 구현해서 적용해 보자

 

회원 정보 수정은 update 기능으로, Create와 매우 유사하게 구현할 수 있다.

Create를 했을 때처럼 UserCreationForm은 기존 User 모델을 참조하는 Form이기 때문에 이번에도 커스텀 모델로 만들어줄 필요가 있다.

커스텀을 위해서 forms.py에서 커스텀을 진행해 보자. create와 유사하게 만들면 된다.

class CustomedUserChangeForm(UserChangeForm):
    class Meta(UserChangeForm.Meta):
        model = get_user_model()

UserchangeForm을 import 해서 사용, 이름 변경 빼곤 create와 동일하다

form을 만들었으니 이제 다시 urls에서부터 path지정을 하면 된다.

path 지정후 update 함수를 만들어주자. 회원가입 함수와 똑같이 작성하고, creationform을 changeform으로 바꿔주고 Url만 수정해 주면 된다.

함수 지정까지 했으면 update.html을 만들어주자. 구조는 이전 signup과 비슷하다

이제 회원정보 수정에 접근하기 위해 base.html에 링크를 지정해 주자.

여기까지 작성하고 서버를 실행해서 정상적으로 작동하는지 확인해 보자

정보 수정 버튼이 정상적으로 생성된 것을 볼 수 있다. 다만 페이지에 들어가면 엄청 많은 필드가 보이게 된다.

뭔가 굉장히 많은 필드가 나온다. 원하는 필드만 수정할 수 있게 form에서 field를 지정해 주자.

email과 Last name만 수정할 수 있게 field를 수정해 보았다.

이러고 다시 서버를 실행해 보면

회원 정보 수정란이 지정한 필드만 바꿀 수 있게 수정됐다.

여기까지 회원 정보 수정 기능 구현이 끝났다.


다음 포스팅은 비밀번호 변경 기능을 구현해 보겠습니다

반응형

댓글