-
카테고리
-
세부 분야
풀스택
-
해결 여부
미해결
foreignkey와 onetoonefield의 차이점이 뭔가요
21.08.04 13:16 작성 조회수 239
0
수업 잘 듣고있습니다 :) 항상좋은수업 감사합니다.
질문내용은 제목과같습니다 foreignkey와 onetoonefield의 차이점이 뭔가요?
article에서는 writer를 foregnkey로 받고, profile에서는 user를 onetoone으로 받으셨는데 둘의 차이점이 뭘까요?
답변을 작성해보세요.
0
Hyong Sok Park
지식공유자2021.08.06
안녕하세요.
질문 확인했습니다.
기본적으로 OneToOneField 는 unique 옵션이 True 로 설정된 Foreignkey 와 같습니다.
하지만 연결된 객체를 역으로 불러오는 과정에서 약간의 차이가 있습니다.
Foreignkey 로 연결된 객체는 기본적으로 일대다 관계를 맺기 때문에 여러개의 객체를 반환할 수 있는 Queryset 을 리턴하는 반면,
OneToOneKey 로 연결된 객체는 단일 객체를 되돌려줍니다.
이를 통해 저희 강좌에서 진행하는 내용을 이해해보면,
user 객체에 연결된 profile 에 접근할때,
user.profile 과 같이 접근했고,
닉네임을 출력할때도
target_user.profile.nickname
위와 같이 바로 해당 nickname 을 출력할 수 있었습니다.
하지만 이런 역참조가 ForeignKey 에서는 불가능하다는 점이 주요한 차이라고 볼 수 있겠습니다.
답변이 도움이 되셨길 바랍니다.
감사합니다!
답변 1