을 설정합니다. 하나의 주석은 A
행이 부모 인 B
행의 숫자 여야합니다. 다른 주석은 해당 A
객체가 부모 인 B
행을 나타내야하며, 에 C
유형의 객체가 적어도 n
개 있어야합니다.주석 달기 장고 쿼리는 역 외국 키를 다음과 같이 간단한 모델을 감안할 때
Table A
id
0
1
Table B
id parent
0 0
1 0
Table C
id parent
0 0
1 0
2 1
3 1
4 1
내가 ID 0과 A
객체가 두 B
개체가 같은 형태 [(0, 2, 1), (1, 0, 0)]
의 결과를 얻을 수 있도록하고 싶습니다 : 예를 들어
n = 3
고려 하나에는 적어도 세 개의 관련된 객체가 있습니다. ID가 1 인
A
개체에는
B
개체가 없으므로 행이 적어도 하나있는
B
개체도 없습니다.
첫 번째 주석은 간단하다 :
A.objects.annotate(annotation_1=Count('b_set'))
은 내가 지금 설계하려고하는 두 번째 주석이다. B
객체가 적어도 하나의 C
객체가 다음 것처럼 어디 A
당 B
행의 수를 계산하는 데 성공했다 :
A.objects.annotate(annotation_2=Count('b_set__c_set__parent', distinct=True))
을하지만 다른 최소한의 관련 집합 크기와 함께 할 수있는 방법을 알아낼 수 없습니다 하나보다. 바라건대 여기 누군가가 올바른 방향으로 나를 가리킬 수 있습니다. 내가 생각하고 있던 한 가지 방법은 A
행 대신 쿼리의 B
개체에 주석을 달고 주석 메서드의 기본값을 사용하는 것으로 생각했지만 어떤 리소스도 찾을 수 없었습니다.