ユーザーとプロジェクトのアプリがあり、プロジェクトごとにdjango-authを拡張するためのロールと呼ばれる別のアプリを定義したいと思います。
RolesアプリでProjectMembershipをカスタムのManyToManyリレーションシップモデルとして定義しました。through
しかし、宣言を使用してユーザーまたはプロジェクトモデルでM2Mフィールドを定義するにはどうすればよいですか?
では、問題は、別のアプリからモデルのフィールドを定義できるかどうかです。
私はそれが可能だとは思いません、そしてそれが可能であるとしても、それは私の意見では非常に悪い解決策です。
最善のオプションは、2つのFK(1つはユーザー用、もう1つはプロジェクト用)を使用してProjectMembershipモデルを作成することだと思います。次に、手動のM2Mリレーションがあり、M2Mリレーションを操作するためにすべての優れたDjango機能を使用することはできません。
ただし、この機能が必要な場合(これらは必要ありません)、ユーザーモデルまたはプロジェクトモデルのいずれかを変更する必要があります。
はい、できます。djangoは自動的に逆の関係を作成します。related_name
名前を付けるために使用してください!
User
モデルを変更(マネーパッチ)することはお勧めできません。拡張する場合は、次のいずれかの方法で実行します。