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
- Data Structure
- GitHub
- Back tracking
- 시뮬레이션
- CSV
- 알고리즘
- programmers
- django
- Vue.js
- aws
- JavaScript
- SWEA
- Python
- Algorithm
- 알고리듬
- gpdb
- 코테
- Priority Queue
- Bruth Force
- BFS
- hash table
- DFS
- Trie
- SQL
- 구현
- boj
- 코딩테스트
- 모의SW역량테스트
- Linked list
- spring boot
Archives
- Today
- Total
hotamul의 개발 이야기
[Django] User Model 커스터마이징 #5 (TDD) 본문
[Django] User Model 커스터마이징 #4 (TDD)에서 email serializing, Value 체크 기능을 추가했다. 이제 superuser
를 생성하는 기능도 추가해보자.
[Django] User Model 커스터마이징 #1에서 설명했던 것처럼 UserManager
는 create_superuser
메소드가 있다. 현재 User
모델을 커스터마이징 했기때문에 create_superuser
메소드도 커스터마이징 해줘야 한다.
create_superuser
: test
먼저 test 코드를 작성해보자.
test_models.py
에 아래와 같은 test를 추가해 보자.
def test_create_superuser(self):
"""Test creating a superuser"""
user = get_user_model().objects.create_superuser(
'test@example.com',
'test123',
)
self.assertTrue(user.is_superuser)
self.assertTrue(user.is_staff)
python manage.py test
명령어로 테스트를 실행시켜 보면 아래와 같이 실패함을 확인할 수 있다.
AttributeError: 'UserManager' object has no attribute 'create_superuser'
create_superuser
이제 test를 통과하기 위해 model.py
에서 BaseUserManager
를 상속받아 직접 생성한 UserManager
에 create_superuser
메소드를 추가해보자.
...
def create_superuser(self, email, password):
"""Create and return a new superuser."""
user = self.create_user(email, password)
user.is_staff = True
user.is_superuser = True
user.save(using=self._db)
return user
...
이전에 생성했던 create_user
메소드를 활용해 user를 생성하고 is_staff
, is_superuser
를 True
로 설정해줬다.
이제 다시 test를 실행해보면 성공!!
다음 포스팅은 커스터마이징 한 User
를 admin 페이지에서 관리 할 수 있도록 하기 위해 UserAdmin
을 커스터마이징 해보겠다.
'Dev. > Django' 카테고리의 다른 글
[Django] drf_spectacular 사용해보기 (0) | 2022.07.13 |
---|---|
[Django] User Model 커스터마이징 #6 (TDD) (0) | 2022.07.13 |
[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