【问题标题】:Django Cross Table QuerysetsDjango 跨表查询集
【发布时间】:2013-04-08 19:36:45
【问题描述】:

我的模型定义为:

class Inventory(models.Model):
    items = models.ManyToManyField(Item, blank=True)
    scanned_items = models.ManyToManyField(Item, related_name='scanned_inventory_set', blank=True)

在一个视图中,我试图获取所有尚未扫描的项目的列表。基本上,它必须是(项目而不是扫描项目)。但是,我不知道如何查找两者之间的关系。

【问题讨论】:

  • Inventory 模型在这种情况下似乎毫无意义。为什么不只拥有一个具有 scanned=BooleanField(default=False) 属性的 Item 模型?
  • 我从库存中取出了很多不相关的东西。出于您的兴趣,Inventory 是一个模型,因此可以根据过去的库存生成报告。

标签: django django-queryset


【解决方案1】:

你可以这样做:

items_to_exclude = Inventory.objects.values_list('items', flat=True)
items = Items.objects.exclude(id__in=items_to_exclude)

【讨论】:

    猜你喜欢
    • 2010-09-26
    • 2013-08-22
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    • 2020-02-26
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多