4

我在进行一个 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)

有任何想法吗?

4

1 回答 1

6

怎么样:

所有有订单的客户:

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

所有未下单的客户:

Customer.objects.filter(order__isnull=True)

于 2012-05-28T21:58:50.843 回答