Django & DRF

[Django] 유저 모델(클래스) 종류

chillcoder 2023. 4. 26. 09:36

Django 유저 모델(클래스) 종류

 

  1. AbstractUser : AbstractBaseUser를 상속하여 사용자 모델을 커스터마이징할 수 있는 추상 클래스입니다. 이 클래스는 username, email, first_name, last_name 등을 필드로 가지고 있습니다.
  2. AbstractBaseUser : 최소한의 필드만을 가진 추상 클래스로, Django의 인증 시스템에서 사용자 모델을 커스터마이징할 때 사용됩니다. 이 클래스를 상속받아 자신만의 사용자 모델을 만들어야 하며, 이 경우 반드시 USERNAME_FIELD와 REQUIRED_FIELDS를 정의해야 합니다.
  3. PermissionsMixin : 사용자 모델에 대한 권한을 관리하기 위한 Mixin 클래스입니다. 이 클래스를 상속받으면 사용자 모델이 django.contrib.auth.models.Permission 모델과 관련된 기능들을 사용할 수 있습니다.

 

 

위의 세 가지 모델은 모두 Django에서 제공하는 AbstractBaseUser를 상속받거나 Mixin 클래스를 사용하므로, 커스터마이징이 가능하다.

 

 

공식 문서 링크:

https://docs.djangoproject.com/en/3.2/topics/auth/customizing/#substituting-a-custom-user-model