티스토리 뷰
django 에서 사용하는 user account 아닌 사용자가 유저모델을 정의해서 사용할 수 있다.
자세한 내용에 대해서는 django 공식 문서에서 확인할 수 있다.
https://docs.djangoproject.com/en/3.0/topics/auth/customizing/
reference src :
사용자 계정을 관리할 app(account)을 하나 추가해서 다음과 같이 Account 모델을 생성해준다.
USERNAME_FIELD : 유저가 로그인시에 사용할 필드
REQUIRED_FILEDS : 신규 계정 생성시에 필수 항목
그리고,
objects = MyAccountManager() 을 지정해 주어야 하는데, 이는 Account 관리를 위한 메쏘드를 포함하고 있어야 하기 때문이다. 사용사 계정을 생성하기 위해서는 create_user / create_superuser 등의 메쏘드가 지원되어야 하는데, 이를 Manager 클래스에서 정의되기 때문이다.
다음은 사용자 계정을 관리하는 모델을 만들어준다.
일반 사용자 계정 : create_user()
슈퍼 사용자 계정 : create_superuser()
project settings.py 에서 사용자 모델을 지정해 준다.
admin panel 에 Account 를 추가한다.
admin 화면에서 Account 계정을 보면 위와 같이 변경된 것을 볼수 있다. 한가지 문제점은 password 이다. 패스워드가 암호화 되어 저장되어 있지만 변경시에 암호화된 문자를 입력할수 없다는 것이다.
admin 패널에서 패스워드 관리를 위한 방법
이렇게 하면 패스워드는 "this form" 을 통해서만 변경가능해진다.
Signup : registrationform 만들기
기본적으로 UserCreationForm 을 사용해서 signup form 을 만들지만, 새로운 모델을 이용할 경우 form 또한 별도로 지정해 주어야 한다.
signup views
Password change..
패스워드 변경은 url /accounts/password_change/ 을 통해서 진행되면 password_change_form.html 템플릿이 존재하지 않으면 admin 에서 제공하는 페이지로 이동된다. 따라서 registeration/password_change_form.html 을 만들어준다.
템플릿 파일을 생성해지만 계속 admin 페이지로 이동되는 경우, settings.py 에 templates 경로를 등록주면 된다.
그리고 패스워드가 성공되면, password_change_done.html 으로 이동하게 된다.
Password Reset
settings.py
메일관련 테스트를 위해서 실제 메일을 사용하지 않고 콘솔을 EMAIL 대신 사용하게 해주는 설정이다.
sendtestemail in console
다음은 password reset link 추가
login 화면에 Reset password 링크를 추가한다.
password reset template
패스워드 리셋 요청시 다음 템플릿(password_reset_form.html)을 찾게 되는게, 별도의 설정이 없는 경우 admin 에서 사용하는 페이지를 호출한다. 사용자 화면을 만들기 위해서는 registration/password_reset_form.html 을 만들어주면된다.
email 을 입력하고 버튼을 클릭하면 해당 주소로 password reset 할수 있는 링크를 보내준다.
이번에는 이부분을 원하는 페이지로 호출할수 있는데, password_reset_done.html 템플릿을 만들어주면 된다. 그러면 메일을 보내고 해당 페이지를 호출하게 된다.
password reset done
password reset email 설정
password reset 요청시 사용자에게 보내는 메일의 내용도 변경할수 있는데, registeration/password_reset_email.html 에 보내는 메일의 형식을 작성해주면된다.
password reset confirmation 템플릿
reset 메일의 링크를 호출하게 되면 password_reset_confirm.html 템플릿을 요청한다.
새로운 패스워드 설정이 끝나면, 마지막으로 password_reset_complete.html 을 호출하게 된다.
끝..
'Django(장고) > Django Tutorial' 카테고리의 다른 글
Django - heroku 배포하기 ( heroku cli 사용 ) (0) | 2020.03.22 |
---|---|
Django - REST framework 구현하기 ver2.0 (feat. TODO app, functional view) - pt.1 (0) | 2020.03.03 |
Django - REST framework 사용하기(feat. class view ) (0) | 2020.03.03 |
Django - 뷰 (list view, detail view) (0) | 2020.02.25 |
Django - url 매핑 (0) | 2020.02.25 |
- Total
- Today
- Yesterday
- 팀 소통
- HOME key
- cmd실행
- 장고
- python message
- webhook
- vscode
- http 요청
- 디스크 사용량
- win7
- venv
- 미밴드4
- slack api
- django
- 메시지 전송
- angular
- df 명령어
- python slack
- amaztools
- 프로젝트 생성
- 미밴드
- Python
- cmd창
- channel oauth
- END key
- HOME/END
- win10
- du 명령어
- Karabiner-Elements
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |