gpt4 book ai didi

django - 在 SQL/Django ORM 中建模三向关系

转载 作者:行者123 更新时间:2023-12-04 02:49:06 25 4
gpt4 key购买 nike

谁能帮我弄清楚如何在 Django 的 ORM 中对以下关系建模?

我有一群人。这些人可能属于零个或多个组织。对于一个人所属的每个组织,该人在该组织内都有一个头衔。

例如,John 是 ACME Corp 和 EVIL Inc 的成员。在 ACME Corp 中,他是销售副总裁,而在 EVIL Inc 中,他是首席执行官。

我知道这听起来不切实际,但这个应用程序适用于一个行业中的非营利组织,其中许多人属于多个不同的组织/资助机构/委员会等。

我已经让 person -> organization 部分工作了(很简单,因为它只是一个 ManyToManyField),但我不知道如何为外键指向的每一行实现特定的标题。

最佳答案

您可以使用自定义 through 模型为单个关系保存额外数据:

class Person(models.Model):
organisations = models.ManyToManyField(Organisation, through='Position')

class Position(models.Model):
person = models.ForeignKey(Person)
organisation = models.ForeignKey(Organisation)
title = models.CharField(max_length=50)

另请查看 through models 上的文档.

关于django - 在 SQL/Django ORM 中建模三向关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18144263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com