2017-06-06 13 views
0

私のモデルとPermissionモデルのdjango.contrib.auth.modelsの組み込みの間にOneToMany関係を作りたいと思います。Django OneToMany定義済みモデルのフィールド

モデルの作成時に少なくとも1つの新しい権限を作成し、モデルを削除するときにこの権限を削除することを計画しています。

多対1リレーションシップでは、ForeignKey(https://docs.djangoproject.com/en/1.11/topics/db/examples/many_to_one/)を使用することを推奨しています。しかし、私がこの権利を得れば、PermissionモデルにForeignKeyを追加する必要があります(理論的には)。

私は間違った方法でいますか?これを実装するベストプラクティスは何でしょうか?

答えて

1

DjangoはForeignKeyを通じてManytoOne関係を提供しますが、これはデュアルウェイ関係を指定しますが、モデルのonのみで指定する必要があります。 あなたのモデルがさまざまなパーミッションモデルに関連する必要がある場合、後者ではrel = models.ForeignKey(YourModelClassName)を指定する必要があります。

この場合、djangoには、多くのPermissionのインスタンスを1つのYourModelインスタンスに関連付けることができます。

これが役に立ちます。

+0

しかし、この方法で私は自分のモデルの1つを1つのパーミッションにリンクしていました。したがって、リンケージはmy_model - > Permissionのようになります。私はそれを取得しないと思う –

+0

このコードでは、rel = =コードを書いたクラスのオブジェクトのうちの1つにあなたのモデルのうちの1つをリンクさせます。以下のリンクはこの場合に役立ちます。 ForeignKey()のドキュメントには、ManytoOne関係も記載されています。 https://docs.djangoproject.com/en/1.11/intro/tutorial02/ – tigrank

+0

しかし、私は組み込み許可モデルを編集することはできません...それは私の問題です... –

関連する問題