我正在进行一个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 :(得分:6)
怎么样:
所有订单客户:
Customer.objects.filter(order__isnull=False).distinct()
所有没有订单的客户:
Customer.objects.filter(order__isnull=True)