Many to one relationships

이남경·2024년 4월 3일
0

SSAFY 11기

목록 보기
54/67

Many to one relationships


Many to one relationships

한 테이블의 0 개 이상의 레코드가 다른 테이블의 레코드 한 개와 관련된 관계

Comment(N) - Article(1)

0개 이상의 댓글은 1개의 게시글에 작성될 수 있다.

커멘트에 외래키가 입력 되어야 어느 게시글에 댓글이 달린 것인지 알 수 있음

댓글 모델


Foreignkey()

N:1 관계 설정 모델 필드

댓글 모델 정의

Foreignkey 클래스의 인스턴스 이름은 참조하는 모델 클래스 이름의 단수형으로 작성하는 것을 권장

외래키는 Foreignkey 클래스를 작성하는 위치와 관계없이 테이블 필드 마지막에 작성됨

댓글 생성 연습


관계 모델 참조


역참조

N:1 관계에서 1에서 N을 참조하거나 조회하는 것

→ N은 외래 키를 가지고 있어 물리적으로 참조가 가능하지만 1은 N에 대한 참조 방법이 존재하지 않아 별도의 역참조 기능이 필요

Comment → Article (참조)

어떤 댓글이 작성된 게시글의 정보

Article → Comment (역참조)

어떤 게시글에 작성된 댓글 목록

related manager

N: 1 혹은 M:N 관계에서 역참조 시에 사용하는 매니저

→ 'objects' 매니저를 통해 QuerySet API 를 사용했던 것 처럼 related manager를 통해 QuerySet API를 사용할 수 있게 됨

댓글 구현


CREATE

save(commit = False)

DB에 저장하지 않고 인스턴스만 반환

(Create, but don't save the new instance)

저장이 이루어지기 전에 comment 인스턴스를 제공받는게 필요
Save 메서드의 commit 속성

READ


DELETE


참고


NoReverseMatch 오류가 발생할 경우 현재 페이지의 url 태그만 확인하면 됨

0개의 댓글

관련 채용 정보