장고

2013-08-14 2 views
1

의 다른 개체와의 관계가없는 개체의 목록을 찾을 방법은 다음과 같은 개체 구조를 가지고 :장고

class Customer(models.Model): 
    name = models.CharField(max_length=128) 

class Club(models.Model): 
    customer = models.ForeignKey(Customer) 


class ClubMember(models.Model): 
    group = models.ForeignKey(Group) 
    member = models.ForeignKey(Member) 

class Member(models.Model): 
    customer = models.ForeignKey(Customer) 

어떻게 아직없는 고객에 대한 모든 멤버를 찾을 수 있습니까를 ClubMember 객체가 생성 되었습니까?

결과가 구성원의 쿼리 집합이됩니다.

어떻게 수행 할 수 있습니까?

답변

1
이 같은

아마 뭔가 : 모든 회원을 원하는 경우에

customer.member_set.filter(clubmember__isnull=True) 

에 관계없이 고객의 ClubMember 일치하지 않습니다 특정 고객을 찾는 경우

Member.objects.attribute.exclude(id=clubmember_set__member_id) 
+0

답장을 보내 주신 답이 맞습니까? –

3

:

Member.objects.filter(clubmember__isnull=True) 
+0

아니면'clubmemeber_set__isnull'이 기본값'related_name'으로 가정됩니까? –

+0

필터에 없습니다. –

+0

@KevinHenry - 자세한 내용은 ' _set' 이름은 문서화 된대로 관리자 개체를 참조합니다. https://docs.djangoproject.com/en/dev/topics/db/queries/#following-relationships-backward . 필드 조회에서 관리자는 관련이 없습니다. 관련 모델의 소문자 이름을 사용하면됩니다. https://docs.djangoproject.com/ko/1.5/topics/db/queries/#lookups-that-span-relationships –