인프런 커뮤니티 질문&답변
OneToOneField 관련 질문입니다!
작성
·
186
0
안녕하세요, 강사님.
"관계를 표현하는 모델 필드 (OneToOneField) " 강의 예시를 보면
User:Profile를 FK로 지정한다면 -> profile.user_set.first() -> user 이러한 내용이 나오는데요.
만약 User:Profile 에서 Profile를 FK로 지정한다면, 1:N관계에서 Profile 모델이 N측이니까 User모델 객체에 profile.user 이렇게 접근할 수 있는 게 아닌건가요?
그리고 User 모델 입장에서 Profile 모델 객체로 접근할 때는 참조할 모델명이 없기 때문에 user.profile._set 이렇게 접근하는 게 아닌가해서 질문드려 봅니다!
답변 1
1
이진석
지식공유자
안녕하세요.
설명해주신 내용이 맞습니다.
- User:Profile를 1:N 관계로 지정한다면, profile.user 코드와 user.profile_set.all() 코드를 쓸 수 있게 됩니다.
- User:Profile를 1:1 관계로 지정한다면, profile.user 코드와 user.profile 코드를 쓸 수 있게 됩니다. user.profile 시에 user와 관계에 있는 Profile이 없는 경우, Profile.DoesNotExist 예외가 발생합니다.
본 에피소드의 강의노트에도 본 오류를 수정하여 보충해두었습니다.
오류를 찾아주셔서 감사드립니다. :-)






강사님, 빠른 답변 감사합니다! 본의 아니게 오류를 발견하게 된 것 같습니다ㅎㅎ 앞으로도 계속 공부하겠습니다:)