Django查询集不包括多对多对象

Posted

技术标签:

【中文标题】Django查询集不包括多对多对象【英文标题】:Django queryset excluding many to many objects 【发布时间】:2011-11-29 22:53:02 【问题描述】:

假设我们有一个模型:

 class a(models.Model):
     users = models.ManyToManyField(User) # django.contrib.auth.models.User

还有这些变量:

user = request.user
queryset = a.objects.all()

然后我想从包含用户中的用户的模型中排除这些记录。我该怎么做?

queryset.exclude(...)

【问题讨论】:

【参考方案1】:

就这么简单:

queryset.exclude(users=user)

【讨论】:

以上是关于Django查询集不包括多对多对象的主要内容,如果未能解决你的问题,请参考以下文章

Django ORM - 通过模型查询多对多?

Django 查询集过滤具有相同多对多字段的对象

Django - 查询列表中的任何项目在多对多字段中的任何对象

django - 如何查询仅描述的对象存在于多对多字段中的位置

Django ORM:构造查询,该查询将在多对多字段的最后位置的对象中的字段上查找匹配项

django 一对多跨表查询多对多