Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- GitHub
- 코테
- Priority Queue
- hash table
- 코딩테스트
- BFS
- DFS
- django
- Back tracking
- aws
- 모의SW역량테스트
- 알고리즘
- gpdb
- 알고리듬
- programmers
- Algorithm
- 시뮬레이션
- SQL
- Linked list
- Data Structure
- Trie
- boj
- Python
- spring boot
- CSV
- Vue.js
- 구현
- Bruth Force
- SWEA
- JavaScript
Archives
- Today
- Total
hotamul의 개발 이야기
[Django] User Model 커스터마이징 #1 본문
Django
의 Model
클래스인 User
클래스를 내가 원하는데로 커스터마이징 해보자.
(username
을 사용하지 않고 email
을 사용하고 싶기 때문..)
User
모델 이외에 다른 Model
을 커스터 마이징 하는데에도 많은 도움이 될 거 같다.
먼저 사용할 클래스들은 AbstractBaseUser
, PermissionsMixin
이다.
AbstractBaseUser
AbstractBaseUser
클래스는 User
모델을 커스터 마이징 하기 위해 필요한 클래스이다. 하지만 fields 들은 포함되지 않는다. (기본적으로 제공하는 fields가 없다는 뜻)
따라서 내가 원하는 fields들을 직접 정의해줘야 한다.
PermissionsMixin
PermissionsMixin
클래스는 django permission system 에 사용되는 클래스로 각각의 다른 유저들에게 permissions을 할당해주기 위해 사용한다 (authentication). 기본적인 fields, methods를 제공하고 있다.
Design custom model user
Fields
아래 4개의 fields가 필요하다.
- email (
EmailField
) - name (
CharField
) - is_active (
BooleanField
) - is_staff (
BooleanField
)
추가적으로 만들어줘야 할 User model manager에 대해서도 간략하게 알아보자
User model manager
- Used to manage objects (user model manager는 user model로 부터 생성될 객체를 관리한다)
- Creating objects (따라서 객체 생성 로직 또한 커스터마이징 해줘야 한다)
- Hash password
- Used by Django CLI
- Create superuser (CLI를 이용해 superuser를 만들 때에도 user model manager가 사용된다)
위처럼 user model manager는 user model 객체 생성/관리, superuser 생성 (using CLI) 등을 한다는 것을 알 수 있다. 따라서 User model manager 또한 커스터마이징 해줘야 한다.
BaseUserManager
- Base class for managing users
- Useful helper methods
noramlize_email
: for storing emails consistently
- Methods we'll define
create_user
: called when creating usercreate_superuser
: userd by the CLI to create a superuser (admin)
'Dev. > Django' 카테고리의 다른 글
[Django] User Model 커스터마이징 #6 (TDD) (0) | 2022.07.13 |
---|---|
[Django] User Model 커스터마이징 #5 (TDD) (0) | 2022.07.06 |
[Django] User Model 커스터마이징 #4 (TDD) (0) | 2022.07.03 |
[Django] User Model 커스터마이징 #3 (TDD) (0) | 2022.07.01 |
[Django] User Model 커스터마이징 #2 (TDD) (0) | 2022.06.30 |
Comments