假设我有这个模型:
Class Item(models.Model):
...
Class ItemCollection(models.Model):
...
items = models.ManyToManyField(Item)
...
现在我过滤ItemCollection:
collection = RuleRequest.objects.filter(*some_filter*)
现在从"集合"查询集,我需要从ManyToManyField获得所有唯一的项目。对于单个对象来说,这很容易做到,但是如何使用queryset呢?
不确定这是否是你想要的…但是如果你只是想通过ItemCollection获得唯一的项目,下面应该工作:
Item.objects.filter(itemcollection__*somefilter*).distinct()
e。g如果ItemCollection有活动字段
Item.objects.filter(itemcollection__active=True).distinct()