데이터 분석 기술 블로그

DB에 대하여(4)_관계 모델 참조 (feat. Django) 본문

DB

DB에 대하여(4)_관계 모델 참조 (feat. Django)

데이터분석가 이채은 2024. 4. 19. 09:00

1. 역참조

역참조란, N:1 관계에서 1에서 N을 참조하거나 조회하는 것입니다. 즉, 1 → N입니다.

N은 외래 키를 가지고 있어서 물리적으로 참조가 가능하지만 1은 N에 대한 참조 방법이 존재하지 않기 때문에 별도의 역참조 이름이 필요합니다.

역참조 예시


2. related manager

N:1 혹은 M:N 관계에서 역참조 시에 사용하는 매니저입니다. 'objects' 매니저를 통해 queryset api를 사용했던 것처럼 related manager를 통해 queryset api를 사용할 수 있게 됩니다.

related manage 이름 규칙


3. Related manager 연습

shell_plus 실행 및 1번 게시글 조회

python manage.py shell_plus

article = Article.objects.get(pk=1)

1번 게시글에 작성된 모든 댓글 조회하기 (역참조)

article.comment_set.all()
<QuerySet [<Comment: Comment object (1)>,
<Comment: Comment object (2)>]>

1번 게시글에 작성된 모든 댓글 내용 출력

comments = article.comment_set.all()

for comment in comments:
    print(comment.content)