본문 바로가기
Category/Django

[Django] 커스텀 유저 모델 적용 확인하기(feat: Docker 환경)

by Corinee 2025. 8. 13.
728x90
반응형

현재 진행 중인 장고 프로젝트의 사용자 계정 코드를 분석한 내용을 정리한 글입니다.

 

현재 로컬 개발 환경과 배포 환경은 각기 다른 docker-compose 파일로 분리되어 있습니다. 로컬에서는 web이라는 컨테이너에서 장고 서버가 실행 중이기 때문에 장고 셸에 접속하기 위해선 다음 명령어를 사용합니다.

docker-compose exec web python manage.py shell

 

코드를 보면 사용자 커스텀 유저 클래스를 정의할 때 AbstractUser를 상속받도록 한다음 users앱에 모델로 정의하였고, 설정 파일에서 AUTH_USER_MODEL 을 다음과 같이 커스텀 유저로 등록한 상태입니다.

# users/models.py

class User(AbstractUser):
	...
# settings/base.py

AUTH_USER_MODEL="users.User"
...

사용자 정보를 가져올 때 get_user_model() 메서드를 사용하는데 이것이 정말 User클래스와 잘 연결되어 있는지 확인해보고자 합니다. (위의 단계에서 진행한 것처럼 장고 셸에 접속한 상태여야 합니다.)

 

먼저 get_user_model() 메서드의 반환 값을 다음과 같이 확인합니다.

>>> from django.contrib.auth import get_user_model
>>> get_user_model()
<class 'users.models.User'>

 

이어서 AUTH_USER_MODEL에 설정된 값도 확인합니다.

>>> from django.conf import settings
>>> settings.AUTH_USER_MODEL
'users.User'

 

새롭게 정의한 유저 클래스로 잘 설정된 것을 확인할 수 있었습니다. 반환 타입이 각각 클래스와 문자열로 다르기 때문에 적절하게 선택해서 사용하면 될 것 같습니다.