2011-01-21 8 views
13

내가 한이 같은 두 가지 모델 :외래 키

class AA(models.Model): 
    name = models.CharField() 
    state = models.IngerField() 


class BB(models.Model): 
    aa_id = models.ForeignKey(AA) 

내 질문은 : 내가 모든 상태 (10)와 AA 개체를 얻을 BB에 해당되지 않습니다 어떻게? SQL에서

나는 같은 것을 할 :

select * from AA 
where AA.state = 10 and AA.id not in (select aa_id from BB) 

또는

select * from AA 
left join BB on BB.aa_id = AA.id 
where AA.state = 10 and BB.id is null 

내가 모든 AA 개체를 얻을 BB 그것에 외래 키가있는 경우 하나 하나 확인할 수 있다는 것을 알고

. 하지만 옳은 일은 아닙니다.

감사합니다. 이 같은

답변

18

뭔가 :

AA.objects.filter(state=10, bb=None) 
+0

BB는 AA 모델의 필드 아니다 – balsagoth

+5

예는, 그것은 자동으로 생성 역의 관계 필드입니다. 시도해보십시오, 작동하지 않습니다. –

+0

예. 작동합니다. 너무 쉽게. 감사합니다 – balsagoth