> 백엔드 개발 > 파이썬 튜토리얼 > `관련_이름`은 Django의 ManyToManyField 및 ForeignKey 관계를 어떻게 향상합니까?

`관련_이름`은 Django의 ManyToManyField 및 ForeignKey 관계를 어떻게 향상합니까?

Susan Sarandon
풀어 주다: 2024-12-13 11:42:12
원래의
798명이 탐색했습니다.

How Does `related_name` Enhance Django's ManyToManyField and ForeignKey Relationships?

Django의 ManyToManyField 및 ForeignKey 필드에 있는 Related_Name

Django 프레임워크는 강력한 ORM(Object-Relational Mapping) 시스템을 제공하여 다음과 편리하게 상호 작용할 수 있습니다. 데이터베이스. Django의 ORM에서 두 가지 중요한 필드 유형은 ManyToManyField와 ForeignKey입니다.

Related_Name 인수의 목적

이러한 필드의 한 가지 중요한 측면은 관련_이름 인수입니다. 관련 모델에서 다시 현재 모델로 역방향으로 관계의 이름을 지정합니다. 기본적으로 Django는 명명 규칙 "[관련_모델_이름]_set"을 사용하여 역관계 이름을 자동으로 할당합니다. 그러나 관련_이름 인수를 사용하면 이 이름을 사용자 정의할 수 있습니다.

ManyToManyField에서의 사용

다음 코드를 예로 들어 보겠습니다.

class Map(db.Model):
    members = models.ManyToManyField(User, related_name='maps',
                                     verbose_name=_('members'))
로그인 후 복사

이 코드에서 관련_이름='maps'는 사용자 모델에서 지도 모델은 "지도"입니다.

Related_Name 사용자 정의의 이점

Related_Name 사용자 정의는 다음과 같은 여러 이점을 제공합니다.

  • 개선됨 가독성: User.maps 구문은 다음보다 더 간결하고 읽기 쉽습니다. User.map_set.all().
  • 보다 깔끔한 쿼리: current_user.maps.all()을 사용하면 current_user와 관련된 모든 Map 인스턴스를 검색하여 코드를 더 읽기 쉽고 유지 관리하기 쉽게 만들 수 있습니다.
  • 더 나은 코드 재사용성: 관련_이름을 사용자 정의하면 일관된 이름 지정이 가능합니다. 여러 모델에 걸쳐 규칙을 적용하여 코드 재사용성과 공동 작업을 강화합니다.

역방향 관계 비활성화

역방향 관계 생성을 완전히 비활성화하려면 다음을 수행하세요. 관련_이름=''으로 설정하세요. 이 옵션은 관련 모델에 대한 역접근이 필요하지 않을 때 유용합니다.

위 내용은 `관련_이름`은 Django의 ManyToManyField 및 ForeignKey 관계를 어떻게 향상합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿