2013-04-08 44 views
1

我的模型定义为:Django的交叉表查询集

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

在视图中,我试图让那些没有被扫描的所有项目的列表。基本上,它必须是(物品而不是scanning_items)。但是,我不知道如何查找两者之间的关系。

+0

的'Inventory'模式似乎在这种情况下毫无意义。你为什么不只有一个''''''''''''''''''''''''''''''''''属性有'scanned = BooleanField(default = False) – rantanplan 2013-04-08 21:55:08

+0

我从清单中拿出了很多不相关的东西。为了您的利益,库存是一个模型,因此可以根据过去的库存生成报告。 – 2013-04-08 23:47:11

回答

2

你可以这样做:

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