Django交叉表查询集

Django交叉表查询集,django,django-queryset,Django,Django Queryset,我的模型定义为: class Inventory(models.Model): items = models.ManyToManyField(Item, blank=True) scanned_items = models.ManyToManyField(Item, related_name='scanned_inventory_set', blank=True) 在视图中,我正在尝试获取所有未扫描项目的列表。基本上,它必须是(项目,而不是扫描的项目)。但是,我不知道如何查找两

我的模型定义为:

class Inventory(models.Model):
    items = models.ManyToManyField(Item, blank=True)
    scanned_items = models.ManyToManyField(Item, related_name='scanned_inventory_set', blank=True)
在视图中,我正在尝试获取所有未扫描项目的列表。基本上,它必须是(项目,而不是扫描的项目)。但是,我不知道如何查找两者之间的关系。

您可以:

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

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