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'
새롭게 정의한 유저 클래스로 잘 설정된 것을 확인할 수 있었습니다. 반환 타입이 각각 클래스와 문자열로 다르기 때문에 적절하게 선택해서 사용하면 될 것 같습니다.
'Category > Django' 카테고리의 다른 글
| Throttling 적용하기 (0) | 2025.07.21 |
|---|---|
| django-debug-toolbar 안 보이는 문제 해결 (0) | 2025.07.17 |
| N+1 문제 해결 (0) | 2025.07.17 |
| django-environ란? (0) | 2024.09.16 |
| WSGI(웹 서버 게이트웨이 인터페이스, Web Server Gateway Interface)란? (1) | 2024.09.15 |