Djangoは3つのモデルに参加している関連付けをサポートしていますか?例えば:Django ORMは三項関係をサポートしていますか(3つのモデルの間の関係性)?
- ユーザー
- プロジェクト
- グループ
ユーザーは、役割(グループ)を使用して、プロジェクトの参加者です。
Django ORMを使用してそのような関連付けを処理するには、公式ドキュメントで一度も言及されていないので、
Djangoは3つのモデルに参加している関連付けをサポートしていますか?例えば:Django ORMは三項関係をサポートしていますか(3つのモデルの間の関係性)?
ユーザーは、役割(グループ)を使用して、プロジェクトの参加者です。
Django ORMを使用してそのような関連付けを処理するには、公式ドキュメントで一度も言及されていないので、
これがあなたが探している答えであるかどうかは疑問ですが、それはかなり曖昧ですが、二重のアンダースコアを使用して多数のリレーションシップをナビゲートできます。 は、それがプロジェクトにリンクされているユーザーかどうかを知るための例:ここhttps://docs.djangoproject.com/en/1.10/topics/db/queries/#lookups-that-span-relationships
if User.objects.filter(group__project=Project).exists():
# User works on Project
詳しいドキュメントは答えを見つけました。余分なフィールドとして外部キーを持つ中間モデルを使用します。
スルーモデルでmanyToMany関係を使用することができます https://docs.djangoproject.com/en/1.10/topics/db/models/#intermediary-manytomany – educolo