Django:ManyToMany过滤器匹配列表中的任何项目

时间:2011-01-24 23:40:17

标签: django

在模型blog上,我有一个名为ManyToMany的{​​{1}}字段,顾名思义就是允许访问某些内容的组列表。

permissionGroups

在另一个模型class blog(models.Model): permissionGroups = models.ManyToManyField(groups, null=True, blank=True) ... 上,我有一个名为groups的{​​{1}}字段,顾名思义,该字段是该组中的用户列表。

ManyToMany

因此,我希望能够获得allowedUsers所在的所有class groups(models.Model): allowedUsers = models.ManyToManyField(User, null=True, blank=True) ... ,并将其中的任何一个与特定groups的{​​{1}}中的任何一个匹配

我希望一切都清楚,

提前致谢

1 个答案:

答案 0 :(得分:1)

您要查找的最终数据是什么?团体清单?布尔值“可以编辑/不能编辑”吗?

要检查用户是否属于属于博客的群组,您可以执行以下操作: user.groups_set.filter(blog=blog)这相当于检查用户是否可以编辑所述博客。

如果您想要用户可以编辑的博客列表,您可以这样做: blog.objects.filter(permissiongroups__in=user.groups_set.all())

以某种方式考虑你的模型是一种心灵弯曲。