Django过滤器包含对多对多
我试图通过多对多关系过滤一堆对象。因为该trigger_roles字段可能包含多个条目,所以我尝试了contains过滤器。但是由于它被设计为与字符串一起使用,我几乎无助于我如何过滤这种关系(您可以忽略values_list()atm。)。 此功能附加到用户配置文件: def getVisiblePackages(self): visiblePackages = {} for product in self.products.all(): moduleDict = {} for module in product.module_set.all(): pkgList = [] involvedStatus = module.workflow_set.filter(trigger_roles__contains=self.role.id,allowed=True).values_list('current_state', flat=True) 我的工作流程模型如下所示(简化): class Workflow(models.Model): module = models.ForeignKey(Module) current_state = models.ForeignKey(Status) next_state = models.ForeignKey(Status) allowed = models.BooleanField(default=False) involved_roles = models.ManyToManyField(Role, blank=True, null=True) trigger_roles = models.ManyToManyField(Role, blank=True, null=True) …