【问题标题】:Django related query filter, search for items with and without any related itemsdjango相关查询过滤器,搜索有无相关项目的项目
【发布时间】:2012-06-03 04:06:57
【问题描述】:

我正在执行 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)

有什么想法吗?

【问题讨论】:

    标签: django filter django-queryset


    【解决方案1】:

    怎么样:

    所有有订单的客户:

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

    所有没有订单的客户:

    Customer.objects.filter(order__isnull=True)

    【讨论】:

      猜你喜欢
      • 2017-01-21
      • 2015-03-11
      • 2011-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 2022-01-10
      相关资源
      最近更新 更多