본문 바로가기

Development/Django

[Django] User Model 확장 (5) - AbstractBaseUser 모델 상속한 사용자 정의 User 모델 사용하기

728x90

 

Django Logo

 

AbstractBaseUser 모델 상속한 사용자 정의 User 모델 사용하기


개요

AbstractBaseUser 모델을 상속한 User 모델을 만들고 settings.py에 참조를 수정하는 것은 AbstractUser 모델을 상속하는 것과 같다. 따라서 마찬가지로 프로젝트 시작 전에 이 기법의 사용 여부를 결정하는 것이 바람직하다.

그런데 AbstractUser 모델을 상속하는 방법과 달리 로그인 아이디로 이메일 주소를 사용하도록 하거나 Django 로그인 절차가 아닌 인증 절차를 직접 구현하고자 할 때 사용할 수 있다.

예를 들어, 기존에 운영 중이던 PHP 솔루션의 회원 디비를 그대로 재사용하고자 한다면 AbstractBaseUser 모델을 상속한 User 커스텀 모델을 만들어야 한다.

단점은 운영 중에 시스템 사용자 모델을 변경하는 것이 매우 어렵다는 점이다. 따라서 이미 운영 중인 Django 기반 웹사이트의 경우에는 그냥 기존 모델을 사용하자.

구현

구현 코드는 django 공식 문서에 가면 있습니다.

docs.djangoproject.com/en/3.1/topics/auth/customizing/#a-full-example

 

Customizing authentication in Django | Django documentation | Django

Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate

docs.djangoproject.com

728x90