Django에서 User 모델을 참조하는 방법
1. settings.AUTH_USER_MODEL
2. get_user_model()
1. settings.AUTH_USER_MODEL
반환값 : 'accounts.User'
settings.py에 AUTH_USER_MODEL='accounts.User' 으로 유저모델 대체 설정했다.
내장 유저 모델을 acounts의 User를 대체한 코드이다.
settings.AUTH_USER_MODEL의 반환값이 'accounts.User'문자열이 된 것이다.
models.py에서 사용한다.
from django.conf import settings
class Article(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
FK의 참조값으로 settings.AUTH_USER_MODEL을 이용했다.
유저 객체를 생성하기 전에 모델 객체가 먼저 생성되기 때문에 get_user_model()을 사용할 수 없다.
article에 user의 id를 참조한 것이다. 테이블에 user_id가 추가된다.
models.py가 변경되었기 때문에 migration을 진행한다.
class Comment(models.Model):
article = models.ForeignKey(Article, on_delete=models.CASCADE)
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
comment에는 FK가 article, user 2개이다.
2. get_user_model()
반환값 : User Object
User 클래스를 직접참고하지 않고 get_user_model()을 이용하면 프로젝트에서 활성화된 유저모델을 return하게 된다.
반환값은 User Object 객체이다.
models.py가 아닌 다른 모든 곳에서 유저 모델을 참조할 때 사용한다.
User 모델 참조할 때,
models.py 에서는 settings.AUTH_USER_MODEL
그 외에서는 get_user_model()
'Back-end > Django' 카테고리의 다른 글
Django : static files 관리 / image 업로드, 출력, 수정, resizing (0) | 2022.10.11 |
---|---|
django CRUD 기본 (0) | 2022.10.07 |
Django Relationship field - 1:N , FK, article-comment 구현 (0) | 2022.10.05 |
RDB 관계 - 1:1, 1:N, M:N / 외래키(Foreign Key) (0) | 2022.10.05 |
쿠키(cookie), 세션(session) (0) | 2022.09.15 |