해결된 질문
작성
·
122
0
안녕하세요 진석님! 좋은 강의 잘 보고 있는 한 학생입니다!
오늘 강의를 보다가 궁금한 점이 생겨서 질문을 남겨봅니다.
jupyter로 코드 실습 하시다가 언급하시는 부분(9분 57초) 에서
get_uer_model() 메서드를 활용하기를 권장하셨습니다.
혹시 이 부분에 대한 이유를 알 수 있을까요?
이전까지 Model 을 작성하실 때에는 settings.AUTH_USER_MODEL을 사용하라고 하셨는데 어째서 해당 부분을 import 하지 않고 get_user_model()을 써야 하는지 이해가 되지 않아서 질문 드렸습니다!
이미 settings.AUTH_USER_MODEL 을 settings.py에서 변수에 할당한 상태라고 가정한다면, settings.AUTH_USER_MODEL 을 바로 import 하는게 메모리를 더 효율적으로 사용할 수 있는 방법이 아닌건가 하는 의문점이 있는 상태에서 질문 드린 점 참고 부탁드리겠습니다. (__ __ )
요약하자면 이렇습니다.
Q1. 9:57에서 언급하신 권장방법은 어째서 settings.AUTH_USER_MODEL을 import 하지 않고 get_user_model() 을 사용해야 하는가?
Q2. settings.AUTH_USER_MODEL은 Model 이 아닌것인가?
Q3. settings.AUTH_USER_MODEL을 import 해서 user.profile한 경우와 get_user_model() 을 import 하여 user.profile을 한 경우의 차이점은 무엇인가?
장고 강의에 항상 애정을 쏟아주셔서 감사합니다.
답변 1
2
안녕하세요.
AUTH_USER_MODEL 값은 "accounts.User" 와 같은 문자열이구요. 모델 클래스가 아닙니다.
https://github.com/django/django/blob/main/django/conf/global_settings.py#L526
get_user_model() 함수는 AUTH_USER_MODEL 값을 참조하여 관련 모델 클래스를 반환합니다.
https://github.com/django/django/blob/main/django/contrib/auth/__init__.py#L188
AUTH_USER_MODEL 문자열 값은 모델 관계 필드에 한해서 유저 모델 관계 지정이 필요할 때에만 사용하구요.
그 외에 유저 모델 클래스가 필요해서 get_user_model() 메서드를 호출하여 사용합니다.
충분한 답변이 되었을 지 모르겠네요.
살펴보시고 댓글 남겨주세요.
화이팅입니다. :-)