如何在django中查询具有manytomany字段指向它们的对象

Posted

技术标签:

【中文标题】如何在django中查询具有manytomany字段指向它们的对象【英文标题】:How to query the object which has manytomany field point to them in django 【发布时间】:2013-06-08 00:02:53 【问题描述】:

我有两个模型用户和公司

class Company(models.Model):
    name = models.CharField max_length=50)

class User(models.Model):
    name = models.CharField( max_length=40)
    following = models.ManyToManyField(Company)

我想让所有有一些用户的公司都在关注他们。 像

Company.objects.filter(has_following = True)

我该怎么做?

【问题讨论】:

【参考方案1】:

您可以在声明 M2M 关系时使用related_name

class User(models.Model):
    name = models.CharField(max_length=40)
    following = models.ManyToManyField(Company, related_name='followers')

然后,您可以使用以下方式查询它:

>>> Company.objects.exclude(followers=None)

【讨论】:

以上是关于如何在django中查询具有manytomany字段指向它们的对象的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 中一次将多个对象添加到 ManyToMany 关系?

django - manytomany 上的查询过滤器为空

Django ManyToMany 查询交集

Django - 按添加到 ManyToMany 字段的最后一个元素查询对象

在 Django 的 ManyToMany 关系中按 id 添加对象

Django DRF视图过滤ManyToMany查询集