2010-01-17 5 views
0

나는 기본 클래스 A가 있습니다. 두 파생 클래스 B, C. 는 지금은 세계적인 수준의 마녀 다 대다 관계 A. 이의를상속 된 객체 필터링

Class D: 
    aObjects : ManyToMany("A") 
실제 개체를 객체에 필터 조회 수익을 알 수있는 방법

D. I이 포함되어 있습니다 평균 : d.objects.get(id=5) 이제 클래스 A의 n 개 개체가 있지만 A, B 또는 C가 혼합되어 있습니다. 쿼리에서 B 유형의 개체 만 가져 오는 방법은 무엇입니까? 사전에

감사합니다.

답변

0

자동으로이 작업을 수행하는 방법은 없습니다 작동합니다. 실제로 파생 된 클래스의 인스턴스가되어야하는지 여부를 기본 클래스의 인스턴스에서 알 수있는 방법이 없다는 것을 문서에서 분명히 알 수 있습니다.

파생 된 유형을 표시하는 기본 클래스에 필드를 정의하고이를 다양한 파생 클래스의 save() 메서드에서 자동으로 설정하는 것입니다. 그런 다음이 필드의 값을 기준으로 필터링 할 수 있습니다.

0

윌이 당신

filter(lambda x: isinstance(x, B), d.objects.get(id=5))