본문 바로가기

Development/Django

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

728x90

 

Django Logo

 

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


개요

AbstractUser 모델을 상속한 User 모델을 만들어 settings.py에 참조를 수정해야 한다.

이 기법의 사용 여부는 프로젝트 시작 전에 하는 것이 좋다. 추후에 settings.AUTH_USER_MODEL 변경시 데이터베이스 스키마를 알맞게 재수정해야 하는데 사용자 모델 필드에 추가나 수정으로 끝나지 않고 완전히 새로운 사용자 객체를 생성하는 일이 된다.

이 기법은 기존 Django의 User 모델을 그대로 사용하므로 기본 로그인 인증 처리 부분은 Django의 것을 이용하면서 몇몇 사용자 정의 필드를 추가할 때 유용하다.

구현

#필요한 모듈 임포트
...
from django.contrib.auth.models import AbstractUser


#MyUser 만들기
class myuser(AbstractUser):
    medium=models.CharField(default="medium", max_length=100)
...

위에서 AbstractUser에 medium을 추가하면 아래 Column 맨 오른쪽에 medium 이라는 열이 생깁니다.

 

OneToOneField 방식과 AbstractUser 방식의 차이점

OneToOneField 방식은 추가로 클래스를 생성하지만, AbstractUser 방식은 추가로 클래스를 생성하지 않습니다.

728x90