• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

foreignkey와 onetoonefield의 차이점이 뭔가요

21.08.04 13:16 작성 조회수 239

0

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

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

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

답변 1

답변을 작성해보세요.

0

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

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

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

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

target_user.profile.nickname 

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

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


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

감사합니다!