Django 내장폼인 UserChangeForm을 사용해 사용자 프로필보기와 수정을 구현합니다.
1. 프로필보기 구현하기
Profile 템플릿을 render하는 views.py에 아래와 같이 소스를 입력합니다.
1 2 3 4 5 6
# users/views.py
@login_message_required def profile_view(request): if request.method == 'GET': return render(request, 'users/profile.html')
Decorator로 로그인되지 않은 사용자의 접근을 막고 GET 요청이 들어오면 profile.html을 render합니다. 템플릿에서는 현재 사용자의 정보를 { { user.<필드명> } } 형식으로 조회가 가능합니다. templates의 users에 profile.html을 생성하고 아래와 같이 소스를 입력합니다.
(원래의 소스는 컴퓨터공학부와 일반사용자의 form이 각각 구분되어 있습니다. 이 포스팅에서는 일반사용자의 form은 제외하고 포스팅하겠습니다.)
마찬가지로 decorator를 추가하고 사용자가 수정하기 버튼을 클릭했을시 사용자의 정보들이 이전에 생성한 CustomCsUserChangeForm에 담겨야 하기에 instance = request.user 소스를 삽입합니다. 회원정보가 수정되면 UserChangeForm에서 검증을 해주며 성공하면 message와 함께 다시 프로필창으로 이동합니다.
4. urls.py 작성
각각의 view와 url을 연결하기 위해 urls.py의 urlpatterns에 아래의 path를 추가합니다.