문제

여러 모델이 있고 사용자에게 속한 모든 모델의 쿼리 세트를 반환하고 싶습니다. 여러 모델에서 하나의 쿼리 세트를 반환 할 수 있는지 궁금합니다.

도움이 되었습니까?

해결책

각 모델에서 사용자에게 속한 모든 객체의 단일 쿼리 세트를 반환하고 싶다고 가정합니다.

쿼리 세트가 필요합니까? 아니면 반복 할 수 있습니까? Afaik, 이종 QS는 불가능합니다. 그러나 목록, 체인 반복자 (itertools) 또는 생성기를 쉽게 반환하여 원하는 작업을 수행 할 수 있습니다. 이것은 사용자를 참조하는 모델이 미리 알려져 있다고 가정합니다. Default related_name을 가정하면 모델 이름을 통해 사용자 인스턴스에서 관련 쿼리 세트 속성에 액세스 할 수 있습니다.

qs = getattr(user, '%s_set' % model_name.lower());

물론, 모든 이기종 목록을 사용하면 그러한 모든 모델에 대해 정의 된 필드 또는 메소드 만 사용할 수 있거나 각 객체의 유형을 결정해야합니다.

다른 팁

귀하의 모델에는 관련_Name 키워드 인수 세트와 함께 관계 필드 (Foreigkey 및 MantoManyfield)가 포함되어야합니다. 문서를 확인하십시오 여기.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top