1. 계정 생성

 지난 글에서 로그인/로그아웃 기능을 추가했으니 이번에는 회원가입 기능을 추가해야한다.

 

templates/common/login.html 을 위와 같이 수정하여 "로그인"이라는 제목과 우측 상단의 회원가입 링크를 만든다.

 

common/urls.py 을 위와 같이 수정하여 signup 에 해당하는 url 매핑을 추가한다.

 

common/forms.py 파일을 생성하여 위와 같이 회원가입을 위한 UserForm 클래스를 작성한다.  UserForm 클래스는

django.contrib.auth.forms 의 UserCreationForm 을 상속하여 만든다.  UserCreationForm 을 그대로 사용할 경우

username 과 password1, password2 만을 입력받을 수 있기 때문에 이메일 등의 추가 속성을 입력받기 위해서는

UserCreationForm 클래스를 상속하여 직접 만들어야 한다. 

 

common/views.py 를 위와 같이 작성하여 GET으로 요청됐을 때는 UserForm 을 생성하여 signup.html 을 렌더링하고

POST로 요청됐을 때는 UserForm에 들어있는 데이터를 기반으로 계정을 생성, 자동으로 로그인까지 한 뒤 index

페이지로 리다이렉트 되도록 한다.

 

마지막으로 templates/common/signup.html을 생성하여 위와 같이 작성하면 회원 가입 화면까지 완성된다.

 

 

2. 테스트

로그인 화면의 우측 상단에서 회원가입 링크를 확인할 수 있다.

 

링크 클릭 시 회원 가입 화면이 정상적으로 표시된다.

 

잘못된 입력값이 주어질 경우 form_erros.html에 따라 폼 에러 항목들을 보여준다.

 

정상적인 데이터를 입력할 경우 가입과 동시에 자동으로 로그인 후 index 화면으로 이동하였다.

 

admin 페이지에서 슈퍼유저 계정으로 로그인하여 사용자 목록을 확인해보면 위와 같이 가입된 계정을 확인할 수 있다.

 

 

이것으로 회원 가입 기능까지 구현이 완료되었다.

'개인 프로젝트 > Django-mysite' 카테고리의 다른 글

#21 글쓴이 표시  (0) 2021.10.04
#20 모델 변경  (0) 2021.10.04
#18 로그인/로그아웃  (0) 2021.09.30
#17 답글 갯수 표시  (0) 2021.09.28
#16 게시물 번호 오류  (0) 2021.09.28

+ Recent posts