인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

주성수님의 프로필 이미지
주성수

작성한 질문수

작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지

Articleapp 구현

foreignkey와 onetoonefield의 차이점이 뭔가요

작성

·

331

0

수업 잘 듣고있습니다 :) 항상좋은수업 감사합니다.

질문내용은 제목과같습니다 foreignkey와 onetoonefield의 차이점이 뭔가요?

article에서는 writer를 foregnkey로 받고, profile에서는 user를 onetoone으로 받으셨는데 둘의 차이점이 뭘까요?

답변 1

0

Hyong Sok Park님의 프로필 이미지
Hyong Sok Park
지식공유자

안녕하세요.
질문 확인했습니다.

기본적으로 OneToOneField 는 unique 옵션이 True 로 설정된 Foreignkey 와 같습니다.
하지만 연결된 객체를 역으로 불러오는 과정에서 약간의 차이가 있습니다.

Foreignkey 로 연결된 객체는 기본적으로 일대다 관계를 맺기 때문에 여러개의 객체를 반환할 수 있는 Queryset 을 리턴하는 반면,
OneToOneKey 로 연결된 객체는 단일 객체를 되돌려줍니다.

이를 통해 저희 강좌에서 진행하는 내용을 이해해보면,
user 객체에 연결된 profile 에 접근할때,
user.profile 과 같이 접근했고, 
닉네임을 출력할때도

target_user.profile.nickname 

위와 같이 바로 해당 nickname 을 출력할 수 있었습니다.

하지만 이런 역참조가 ForeignKey 에서는 불가능하다는 점이 주요한 차이라고 볼 수 있겠습니다.


답변이 도움이 되셨길 바랍니다.

감사합니다!

주성수님의 프로필 이미지
주성수

작성한 질문수

질문하기