장고에서 유저 모델을 지정하는 방법

guava·2021년 11월 14일
0

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 강의를 듣고 정리한 글입니다.

관계 필드에 유저 모델 지정할 때

비추천

  • 장고의 기본 유저 모델인 auth.User를 외래키로 넘기고 있다.
  • 커스텀 유저 모델을 정의했음에도 기존의 장고 유저를 사용하고 있다.
# blog/models.py
from django.contrib.auth.base_user import AbstractBaseUser
class User(AbstractBaseUser):
   # ...

# blog/models.py
class Post(models.Model):
    author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
    title = model.CharField(max_length = 100)

추천

커스텀 여부에 관계 없이 현재 프로젝트에서 사용하는 유저 모델을 사용하게 된다.

# settings.py
AUTH_USER_MODEL = 'blog.User'  # AUTH_USER_MODEL를 지정해준다.

# blog/models.py
from django.contrib.auth.base_user import AbstractBaseUser
class User(AbstractBaseUser):
   # ...

# blog/models.py
class Post(models.Model):
    author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    title = model.CharField(max_length = 100)

코드에서 유저 모델 불러오기

  • 코드에서는 아래와 같이 접근하며 마찬가지로 커스텀 여부에 관계 없이 현재 프로젝트의 유저 모델을 사용한다.
from django.contrib.auth import get_user_model

User = get_user_model()

0개의 댓글