[Django] related_name 자동 참조

2024. 3. 18. 21:46· Django/model
목차
  1. 배경
  2. 코드
  3. 설명
  4. 배운 점
728x90

배경

사내 코드 중에 명시하지 않았는데 obj를 참조하고 있는 가진 모델을 다루는 코드가 있었다.

이제껏 prefetch로 가져오고 명시해줘서 뭔가 어색했었다.

그런데 쿼리를 가져올 시 prefetch를 사용하지 않으면 모델_set으로 가져오는 방식이 있었다.

그래서 문득 django가 자동으로 관련 테이블을 가져와주는 것인가? 라는 생각에 정리를 하게 되었다.

 

 

코드

#comments가 다른 모델의 copmment_obj에 related_name로 설정 되어있음
comment_obj.comments.create(
            content=content,
            user=request.user
        )

 

 

설명

일반적으로 ForeignKey나 OneToOneField와 같은 관계형 필드를 사용하면, Django는 자동으로 해당 모델과의 관련된 역참조 속성을 생성합니다. 이 속성은 원래 모델의 이름을 소문자화하고 "_set"을 접미사로 붙인 이름으로 설정됩니다.

예를 들어, "comment"라는 ForeignKey 필드가 있는 모델을 가정하면, Django는 자동으로 "comment_set"이라는 역참조 속성을 생성합니다. 이를 통해 해당 모델과 관련된 객체를 가져올 수 있습니다!

 

 

배운 점

Django에서 related_name을 명시하지 않아도 자동으로 역참조 속성이 생성된다

신기방기 (근데 역참조 모델을 사용하지 않을꺼라면 메모리 낭비가 되지 않나??)

저작자표시 비영리 (새창열림)

'Django > model' 카테고리의 다른 글

Django | ManyToMany는 사용하면 좋지않다  (0) 2024.04.11
[Django] 날짜 형식 체크  (0) 2024.03.04
  1. 배경
  2. 코드
  3. 설명
  4. 배운 점
'Django/model' 카테고리의 다른 글
  • Django | ManyToMany는 사용하면 좋지않다
  • [Django] 날짜 형식 체크
두잇 두두
두잇 두두
읽기 쉬운 코드를 짜기 위해 노력합니다. 좋은 코드는 단순하고 이해하기 쉬워야 한다고 생각합니다.
두두 DB읽기 쉬운 코드를 짜기 위해 노력합니다. 좋은 코드는 단순하고 이해하기 쉬워야 한다고 생각합니다.
두잇 두두
두두 DB
두잇 두두
전체
오늘
어제
  • 분류 전체보기 (135)
    • CS지식 (7)
    • 시스템 설계 (5)
    • 자료구조&알고리즘 (36)
      • 자료구조 (1)
      • 백준 (13)
      • 프로그래머스 (15)
      • 인프런 (2)
    • Python (9)
      • Docs (3)
      • 실험실 (2)
    • Django (36)
      • orm (10)
      • view (3)
      • model (3)
      • admin (3)
      • restframework (13)
      • error (1)
      • utils (2)
    • Java (2)
      • JPA (3)
    • AI (1)
      • AI가 쓴 글 (1)
    • Git (4)
    • Linux (1)
    • 개발자로써 (8)
      • 회고 (1)
    • 문화생활 (0)
      • 여행 (0)
    • 도서📚 (0)
      • 일반 도서 (0)
      • 개발 도서 (0)
    • 프론트 (1)
      • snippet (1)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
두잇 두두
[Django] related_name 자동 참조
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.