3

DjangoのORMで次の関係をモデル化する方法を理解してくれる人はいますか?

私は人々のセットを持っています。これらの人々は、0 個以上の組織に属している可能性があります。個人が所属する組織ごとに、その個人はその組織内で役職を持っています。

たとえば、John は ACME Corp と EVIL Inc の両方のメンバーです。ACME Corp 内では、John は販売担当副社長であり、EVIL Inc 内では CEO です。

非現実的に聞こえるかもしれませんが、このアプリケーションは、多くの人が複数の異なる組織/資金提供団体/委員会などに所属している業界の非営利団体向けです。

個人 -> 組織の部分は機能しています (ManyToManyField だけなので簡単です) が、外部キーが指す各行に特定のタイトルを実装する方法がわかりません。

4

1 に答える 1

4

カスタム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また、モデルに関するドキュメントも確認してください。

于 2013-08-09T10:15:09.863 に答える