_won_
wonprogrammer
_won_
전체 방문자
오늘
어제
  • 분류 전체보기
    • woncoding
      • TIL
      • WIL
    • source Code
      • Python
      • Programmers
      • BAEKJOON

블로그 메뉴

  • 방명록

티스토리

Github · Wonprogrammer
hELLO · Designed By 정상우.
_won_

wonprogrammer

TIL | 2.9.목 [Django User Model vs DRF Custom User Model]
woncoding/TIL

TIL | 2.9.목 [Django User Model vs DRF Custom User Model]

2023. 2. 9. 18:08

Django User

- Django User Model 란?

Django에서는 기본적으로 제공하는 User 모델이다. 이 User 모델은 django.contrib.auth.models.User에 다음과 같이 정의되어 있다. 

class User(AbstractUser):
    class Meta(AbstractUser.Meta):
        swappable = 'AUTH_USER_MODEL'

표준 User 모델은 AbstractUser를 상속받고 있는 것을 알 수 있다. 또한 표준 User 모델에서는 다음과 같은 칼럼이 정의되어 있다.

👉 하지만 Django User Model은 username으로만 로그인이 가능하며 이외의 필드들이 필요할 때 자유롭게 쓰지 못하는 단점들이 있다. 이 단점을 보완하고 실제 서비스에서 더 다양한 User의 정보를 얻기 위해서Custom User를 통해 모델을 정의해준다.

 


 

Django Custom User

- Django Custom User Model 란?

장고에서 기본적으로 제공하는 필드 이외에 다양한 내가 필요한 User정보를 얻기 위해 다양한 필드들로 Customizing한 모델이다.

 

 

- Django Custom User Model 만들기

custom user 모델을 구현하기 위해서는 BaseUserManager와 AbstractBaseUser 클래스를 상속받아 새롭게 구현해야 한다.

from django.db import models
from django.contrib.auth.models import BaseUserManager, AbstractBaseUser
  • BaseUserManager는 유저를 생성하는 역할을 하는 헬퍼 클래스이고,
    • UserManager 클래스에서 create_user와 create_superuser 함수를 통해 일반 user와 관리자 user 객체를 생성하는 코드작성
  • AbstractBaseUser는 실제 모델이 상속받아 생성하는 클래스이다.
    • AbstractUser인 User 클래스에서는 사용자 모델에 필요한 field를 작성해주었고, USERNAME_FIELD, REQUIRED_FIELDS를 설정
저작자표시 비영리 변경금지 (새창열림)

'woncoding > TIL' 카테고리의 다른 글

TIL | 2.13.월 [Open API]  (0) 2023.02.14
TIL | 2.10.금 [CI/CD]  (0) 2023.02.13
TIL | 2.8.수 [TDD | Test Code]  (0) 2023.02.09
TIL | 2.7.화 [Rest API / Fast API]  (0) 2023.02.09
TIL | 2.6.월 [CS 기초지식 | JWT]  (0) 2023.02.07
    'woncoding/TIL' 카테고리의 다른 글
    • TIL | 2.13.월 [Open API]
    • TIL | 2.10.금 [CI/CD]
    • TIL | 2.8.수 [TDD | Test Code]
    • TIL | 2.7.화 [Rest API / Fast API]
    _won_
    _won_
    Coding Practice blog

    티스토리툴바