inflearn logo
강의

Course

Instructor

Complete Guide to Python/Django Web Service Development with React

Model field representing the relationship (ForeignKey)

올바른 USER 모델 지정방법이 제대로 이해가 가지 않습니다 ㅠㅠ

Resolved

398

hwk

10 asked

0

안녕하세요 강사님.

15:50부터 시작하는 '올바른 USER 모델 지정방법'설명이 제대로 이해가 가지 않습니다.
제가 아래와 같이 이해한게 맞는 내용인가요?

 

장고에서는 기본적으로 auth에서 User모델을 제공해준다.

그러나 개별 앱에서 User모델을 만들었을 때 Model.py에서 제대로 인식하지 못하므로 settings.py에서 'AUTH_USER_MODEL = 'instagram.User' 를 작성해주고, Models.py에서도 author = models.ForeginKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)로 작성해줘야 한다.

 

이렇게 이해했는데 제가 이해한 부분이 맞을까요?

맞다면 개별 앱에서 user모델을 작성하게 되는 이유는 무엇인가요? 간단한 예제로 설명해주시면 이해가 갈 것 같습니다!

react docker django python

Answer 2

2

pyhub

장고 기본의 django.contrib.auth 앱에서는 User 모델을 기본 제공해주고 있습니다.  이 User 모델이 장고 모든 인증의 중심이 됩니다. (세션 인증, JWT 인증 등)

django.contrib.auth 앱에서 제공되는 User 모델이라서 미리 만들어진 모델인데요. 프로젝트에 따라 User 모델을 우리가 만든 장고앱의 User 모델로 변경하고 싶을 수 있습니다. 그때 myapp 장고앱의 CustomUser 모델을 사용코자 한다면, settings 에서 AUTH_USER_MODEL 값으로 "myapp.CustomUser" 문자열을 지정하면 됩니다.

이제 프로젝트에서 사용하는 유저 모델이 다른 앱의 모델로 변경될 수 있음을 아셨을 것입니다. 그런데 이 유저 모델에 대한 외래키를 지정코자 한다면, 유저 모델이 바뀔 수 있기에, 하드 코딩으로 해당 모델 클래스를 임포트해서 지정할 수는 없습니다. 유연하지 못한 대처인 것이죠.

외래키는 모델 클래스를 지정할 수도 있지만, "앱이름.모델명" 과 같은 문자열로도 지정할 수 있습니다. 그래서 settings.AUTH_USER_MODEL 을 지정해줄 수 있습니다. 이렇게 지정하시면 현재 어떤 앱의 모델을 유저 모델로 사용하는 지 신경쓰지 않고, 외래키를 지정할 수 있게 되는 것입니다.

1

hwk

오! 감이잡히네요 ㅎㅎ 감사합니다!!

안녕하세요.

0

45

1

[OneToOne Field Demo] get_user_model() 메서드를 활용해야 하는 이유?

0

268

1

useEffect 훅에서 else 유무에 따른 결과

0

207

1

useAxios 훅의 dependency array 설정

0

241

1

useEffect에서 변수 업데이트 관련 질문

0

378

1

rest_framework.generics.CreateAPIView의 model 속성 유무

0

262

1

bootstrap4

0

465

4

리뉴얼 강의가 오픈이 되면 기존 강의는 더이상 못보는걸까요

1

358

1

admin form에서 앞선 필드 선택 후 다른 필드 select widget 구성하는 방법

0

568

3

useState는 필수일까요?

0

257

1

python manage.py makemigrations instagram 시 created_at default 오류가 발생합니다.

0

590

4

Django allauth를 사용한 소셜 로그인 시 에러

0

649

1

프로젝트명 변경 뒤, 디버그툴바+디버그모드 사용 시 에러

0

549

2

useLocalStorage() 함수 사용여부

0

224

1

django에 LOGIN_URL = '/accounts/login/'의 의미?

0

443

1

리듀서의 의미 재확인

0

424

1

simple-jwt Refresh Token 사용 노하우

0

895

2

docker compose 를 통한 배포 관련 오류 문의

0

665

1

파이썬 속도 장고 관련 궁금한게 있습니다.

0

359

1

is_like_user

0

230

1

related_name 오류

0

269

1

re_path 오류

0

254

1

re_path url

0

245

1

No post matches the given query

0

654

2