Custom User Model 만들기 – Django REST framework (17.02.14 수정)

Django는 기본적으로 제공하는 user model이 존재한다.

이 user model을 통해 일반적인 회원가입 및 로그인이 가능하나,
단순히 이메일을 아이디 삼아 회원가입을 할 수 있도록 만들고 싶어 custom user model을 만들기로 했다.

이 글은Django 공식 문서를 참조했다.

참고로 이건 프로젝트를 처음 생성할 때에만 해당한다. 이미 makemigration 과정을 거치고 DB에 이런저런 모델들이 생성 된 이후에는 아마 나처럼 오만가지 오류를 다 겪을 것이다.

앱생성

왜 앱이름을 Applicants라고 지었을까. Accounts라고 짓는다는 것이(…)
python manage.py startapp Applicants

/Applicants/models.py 작성

/Applicants/admin.py

해당 작업을 수행해야 나중에 /admin/으로 접속했을 때 일반적인 user model이 아닌 우리가 설정한 custom user model이 반영된 admin 페이지가 나온다.

/프로젝트/settings.py

중간이나 마지막에 삽입한다.
AUTH_USER_MODEL = 'Applicants.MyUser'

마이그레이션 작업

makemigration Applicants
migrate Applicants

custom model을 사용할 생각이라면 무엇보다 이 모델에 대한 마이그레이션 작업을 가장 먼저 수행해야 한다. 안 그러면 엄청 복잡한 작업으로 custom user 마이그레이션을 수행하게 되거나 나처럼 프로젝트를 다시 만들게(…) 되버린다.