如何访问Django多对多关系的连接表/对象

2024-09-29 23:24:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下型号:

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


class Offering(models.Model):  
    entity = models.OneToOneField(Entity) 
    investment = models.ManyToManyField(InvestmentChoice, blank=True)

创建的联接表包含以下字段:

^{pr2}$

我想得到一个实体对象的列表,这些对象有特定的投资选择。我想这意味着我需要访问多对多连接表。在

例如,如果我想要所有提供投资选项的实体id为5。在

如果是这样的话,我如何使用django查询来做到这一点呢?在


Tags: 对象实体modeltitlemodelslengthmaxclass
3条回答

根据https://docs.djangoproject.com/en/2.0/topics/db/models/,您可以在InvestmentChoice模型中添加如下内容:

entities = models.ManyToManyField(Entity, through='Offering')

希望有帮助!在

如果您想获得investment 5的所有产品实体,下面的查询可以完成这项工作。在

Offering.objects.filter(investment__id=5)

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

^{pr2}$

有关多对多查询的更多信息,可以检查Django Doc和进行查询{a2}。在

我可以分两步来完成:

choice = InvestmentChoice.objects.get(pk=5)

然后我可以获得所有相关的产品对象,例如:

^{pr2}$

相关问题 更多 >

    热门问题