2012-05-28 3 views
4

Django 쿼리가 끝나면 특정 관련 개체를 가지고 있고 수행하지 않는 모든 항목을 나열 할 수 있습니다. 예를 들어Django 관련 쿼리 필터, 관련 항목이 있거나없는 항목 검색

내가 모델이있는 경우 :

이제
def Customer(Model): 
    name = CharField(...) 
    ... 

def Order(Model): 
    customer = ForeignKey(Customer) 

, 어떻게 "주문이 나에게 모든 고객을주고, 반대로, 주문없이 나에게 모든 고객을 준다"라고합니까?

withords = model.objects.all().annotate(orders=Count('order')).filter(orders__gt=0) 

without = model.objects.all().annotate(orders=Count('order')).filter(orders__lt=1) 

어떤 아이디어 :

는 내가 지금까지 (작동하지 않는)이 것은이 무엇입니까?

+0

어떤 식으로 작동하지 않습니다 ? –

답변

5

에 대해 어떻게 : 주문과

모든 고객 :

Customer.objects.filter(order__isnull=False).distinct()

모든 고객 주문없이 :

Customer.objects.filter(order__isnull=True)