User
상속
필드가 너무 과하다.
AbstractUser
모델 상속 추천
AbstractBaseUser
상속
settings.py
에서 User를 사용한다고 명시해야 함
AbstractBaseUser
는 명시할 필요 없지만 AbstractUser
는 명시해야한다.
앱이름.클래스명
ex: user.User
- BaseUserManager
User 를 생성할 때 사용하는 헬퍼 클래스
모델을 관리하는 클래스
user 생성할 때의 행위를 지정
모든 django model 들은 Manager 를 통해서 QuerySet 을 받는다. DB에서 query를 처리할 때, Manager 를 무조건 거쳐야 한다.
- AbstractUser
실제 모델이 상속받아 생성하는 클래스
반드시 objects 값을 통해 헬퍼 클래스를 지정해야한다.
objects : 헬퍼 클래스 지정
USERNAME_FIELD : 유저 모델의 Unique Identifier. unique = True 가 옵션으로 설정된 필드 값으로 설정한다.
REQUIRED_FIELDS : 필수로 받고 싶은 필드 값. USERNAME_FIELD 값과 패스워드는 항상 기본적으로 요구하기 때문에 따로 명시하지 않아도 된다.