쿼리 세트 에이전트
관련 ManyTo많이 필드 및 ReverseForeignKey에 직접 액세스하면 관련 모델 목록이 반환됩니다.
그러나 쿼리 세트 API의 하위 집합도 표시되므로 상위 모델에서 직접 필터링, 생성, 관련 모델 선택 등을 할 수 있습니다.
!!!기본적으로 공개 쿼리 세트는 상위 모델과 관련된 모델만 반환하도록 필터링되었습니다.
1 | |
!!!QuerysetProxy를 통해 Query세트 API 메서드에 액세스할 때 일반 쿼리처럼 개체 속성을 사용할 필요가 없습니다.
1 2 3 | |
!!!ManyToMan의 경고 쿼리 관련 모델은 상위 모델에 로드된 관련 모델 목록을 지웁니다.
1 2 3 4 5 6 7 8 9 | |
데이터베이스에서 데이터 읽기
겟
가져오기(**kwargs):-> 모델
이름으로 필터링된 관련 모델 중 하나만 얻으려면 get(**kwargs) 방법을 사용할 수 있습니다.
1 2 3 4 5 6 7 8 9 | |
팁
획득 또는 생성
get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs) -> Tuple[Model, bool]
기준을 충족하는 행을 가져오려고 시도하고 NoMatch 예외가 발생하면 지정된 kwargs 및 _de로 새 행이 생성됩니다.
팁
모두
all(**kwargs) -> List[Optional["Model"]]
관련 모델 목록을 얻으려면 모두() 방법을 사용하십시오.
일반 쿼리와 마찬가지로 쿼리 세트를 필터링하고 관련 필드를 선택하고 필드를 제외하는 등의 작업을 수행할 수 있습니다.
1 2 3 4 5 6 7 | |
팁
반복
iterate(**kwargs) -> AsyncGenerator["Model"]
관련 모델을 반복하려면 반복() 방법을 사용하십시오.
일반 쿼리와 마찬가지로 쿼리 세트를 필터링하고 관련 필드를 선택하고 필드를 제외하는 등의 작업을 수행할 수 있습니다.
1 2 3 | |
팁
데이터베이스에 데이터 삽입/업데이트
만들기
생성(**kwargs):-> 모델
상위 모델에서 직접 관련 모델을 만듭니다.
데이터베이스의 연결된 테이블 및 관계형 ID가 자동으로 채워집니다.
1 2 3 4 | |
팁
다대다 관계의 경우 명시적으로 제공된 통과 모델에 추가 필드를 선언하는 경우 통과 모델을 생성하는 데 사용할 매개 변수를 전달하는 추가 기능이 있습니다.
이러한 샘플이 제공됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
다음과 같은 방법으로 생성() 호출에서 모델별로 필드를 채울 수 있습니다.
1 2 3 4 5 6 7 | |
획득 또는 생성
get_or_create(_defaults: Optional[Dict[str, Any]] = None, **kwargs) -> Tuple[Model, bool]
기준을 충족하는 행을 얻으려고 시도하고 NoMatch 예외가 발생하면 지정된 kwargs를 사용하여 새 행이 생성됩니다.
팁
업데이트 또는 생성
update_or_create(**kwargs) -> Model
모델을 업데이트하거나 데이터베이스에 일치하는 모델이 없는 경우 새 모델을 만듭니다.
!!!팁 쿼리 문서 업데이트 _ 또는 _ 생성에서 자세히 보기
업데이트
update(**kwargs, each:bool = False) -> int
제공된 키워드 매개 변수로 관련 모델을 업데이트하고 업데이트된 행 수를 반환합니다.
팁
필드 이름과 필드 사전이 있는 매개 변수는 다대다 관계 업데이트에도 허용될 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
위의 예에서 다음 호출에서 포스트 카테고리의 속성을 업데이트할 수 있습니다.
1 2 3 | |
필터링 및 정렬
필터
filter(*args, **kwargs) -> QuerySet
모델 속성/필드별로 필터링하고 FK 관계 전반에 걸쳐 필터를 사용하여 인스턴스를 가져올 수 있습니다.
팁
제외
exclude(*args, **kwargs) -> QuerySet
필터와 정확히 동일하게 작동하며 모든 한정자(접미사)는 동일하지만 not 조건이 반환됩니다.
팁
주문 기준
order_by(columns:Union[List, str]) -> QuerySet
순서_by()를 사용하여 선택한 필드별로 데이터베이스의 결과를 정렬할 수 있습니다.
!!!팁 쿼리 문서 순서에서 자세히 보기_by
가입 및 하위 쿼리
관련 선택
select_related(related: Union[List, str]) -> QuerySet
동일한 쿼리 중에 관련 모델을 미리 가져올 수 있습니다.
선택_lated를 사용하면 항상 데이터베이스에 대해 하나의 쿼리만 실행됩니다. 즉, (때로는 복잡한) 조인이 생성되고 나중에 중첩된 모델이 파이썬에서 처리됩니다.
!!!팁 쿼리 문서에서 _lated 선택에 대해 자세히 알아보십시오.
프리페치 상관 관계
prefetch_related(related: Union[List, str]) -> QuerySet
쿼리 중에 관련 모델을 미리 가져올 수 있지만 _lated를 선택하는 대신 각 후속 모델은 별도의 데이터베이스 쿼리로 가져옵니다.
프리페치_lated를 사용하면 각 모델이 데이터베이스에 대해 하나의 쿼리를 실행하므로 여러 쿼리를 차례로 실행합니다.
!!!팁 쿼리 문서에서 자세히 보기 프리페치 _lated
페이지 및 줄
페이징
paginate(page: int, page_size: int = 20) -> QuerySet
페이지 번호 및 크기에 따라 오프셋 및 제한 방법을 결합합니다.
팁
제한
limit(limit_count: int) -> QuerySet
결과를 필요한 상위 모델 수로 제한할 수 있습니다.
팁
오프셋
offset(offset: int) -> QuerySet
필요한 마스터 모델 수로 결과를 상쇄할 수 있습니다.
팁
열의 하위 집합 선택
필드
fields(columns: Union[List, str, set, dict]) -> QuerySet
필드()를 사용하여 모델 열의 하위 집합을 선택하여 데이터 로드를 제한할 수 있습니다.
팁
제외 필드
exclude_fields(columns: Union[List, str, set, dict]) -> QuerySet
_field()를 제외하고 제외할 모델 열의 하위 집합을 선택하여 데이터 로드를 제한할 수 있습니다.
!!!팁 _field를 제외한 쿼리 문서에서 자세히 알아보기
집계 함수
카운트
count(distinct: bool = True) -> int
지정된 기준과 일치하는 행 수(즉, 필터 및 제외 적용)를 반환합니다.
팁
존재
존재 () -> 부울
지정된 기준을 충족하는 행이 있는지 확인하기 위해 부울 값을 반환합니다(필터 및 제외와 함께 적용됨).
팁