Python 如何访问django多对多关系的联接表/对象

Python 如何访问django多对多关系的联接表/对象,python,django,django-models,many-to-many,django-orm,Python,Django,Django Models,Many To Many,Django Orm,我有以下型号: class InvestmentChoice(models.Model): title = models.CharField(max_length=64) class Offering(models.Model): entity = models.OneToOneField(Entity) investment = models.ManyToManyField(InvestmentChoice, blank=True) 创建的联接表具有以下字段

我有以下型号:

class InvestmentChoice(models.Model):
    title = models.CharField(max_length=64)


class Offering(models.Model):  
    entity = models.OneToOneField(Entity) 
    investment = models.ManyToManyField(InvestmentChoice, blank=True)
创建的联接表具有以下字段:

id | offering_id | investment_choice_id
1  |     277     | 5
我想得到一个有特定投资选择的实体对象列表。我想这意味着我需要访问多对多连接表

例如,如果我希望所有实体的投资选择id为5


如果是这样,我如何使用django查询来实现这一点?

如果您希望获得所有具有investment 5的发行实体,下面的查询将完成此工作

Offering.objects.filter(investment__id=5)

如果您想获得某些投资实体的所有产品,请在中使用

from django.db.models import Q
investments = Investment.objects.filter(Q(id=1) || Q(id=5))
Offering.objects.filter(investment__in=investments)

有关多对多查询的更多信息,您可以检查和以进行查询。

我可以通过两个步骤完成此操作:

choice = InvestmentChoice.objects.get(pk=5)
然后,我可以获得所有相关的产品对象,如:

offerings = choice.offering_set.all()
根据,您可以向InvestmentChoice模型添加如下内容:

entities=models.ManyToManyField(Entity,通过class='Offering')

希望有帮助