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

`관련_이름`은 Django 모델의 역관계를 어떻게 향상합니까?

Mary-Kate Olsen
풀어 주다: 2024-12-16 11:15:14
원래의
746명이 탐색했습니다.

How Does `related_name` Enhance Reverse Relationships in Django Models?

Django 모델의 관련 이름 개요

Django에서 관계형 데이터베이스로 작업할 때 관련_이름 매개변수는 역관계를 설정하는 데 중추적인 역할을 합니다. . 이 문서에서는 ManyToManyField 및 ForeignKey 필드 모두에서 그 사용법과 중요성을 살펴봅니다.

관련 이름을 사용한 다대다 관계

ManyToManyField 관계에서 관련_이름은 속성 이름을 정의합니다. 연관된 모델의 역관계에 액세스하는 데 사용됩니다. 예를 들어, 다음 코드 조각에서:

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

관련_이름='maps'는 User에서 Map으로의 역관계가 User.maps로 액세스 가능함을 지정합니다. 관련 이름을 추가하면 기본 Django 생성 역관계 이름(User.map_set)에 비해 구문이 더 직관적이고 덜 장황해집니다.

관련 이름과 외래 키 관계

마찬가지로, ForeignKey 관계에서도 관련_이름을 활용할 수 있습니다. 다만, 이 경우에는 하위 모델에 대한 역관계에 접근하기 위해 사용되는 속성 이름을 정의합니다. 관련_이름을 지정하는 것은 필수는 아니지만 가독성과 사용 편의성이 향상됩니다.

추가 기능

역관계의 속성 이름을 사용자 정의하는 것 외에도 관련_이름은 다른 중요한 기능을 제공합니다.

  • 역방향 비활성화 관계: 관련_이름을 " "로 설정하면 역관계가 명시적으로 비활성화됩니다.
  • 쿼리 구문 사용자 정의: 사용자 정의 쿼리 구문을 달성하기 위해 개발자는 관련_이름을 필터 표현식으로 사용할 수 있습니다. . 예를 들어 User(name__in=current_user.maps.all().values_list('name', flat=True))는 현재 사용자와 연결된 지도의 구성원인 모든 사용자를 가져옵니다.

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

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