モデルを完全に書き換えなくても、多対多の関係を一部のモデルに挿入したいと考えています。多対多リレーションシップをサードパーティ製のモデルに挿入する方法はありますか?
たとえば、私がインストールしたサードパーティ製モジュールのdjango User
モデルとモデルFoo
を考えてみましょう。私は、ユーザーにFoo
を追加したい場合は、
class Foo(models.Model):
users = models.ManyToMany(User)
その後、またはその逆の私が行うことができます::私はfoo「を所有している」の場合
私はやるだけの可能性が
my_user.foo_set.add(my_foo)
my_foo.users.add(my_user)
しかし、私どちらかのコードを所有していない、私はこの関係を注入したい、私は上記を行うことができます。
私が望んでいたのであれば、私が作ったモデルを通してスルー・リレーションシップを行い、それを両側に置くこともできましたが、それでもモデルを変更する必要があります。今
、それはDjangoのように見えるシーンの背後にある多対多の関係ですモデル(彼らは間違いなくテーブルを持っている)、このコードを作ることが可能である:
class FooUserRelationship(models.Model):
foo = ForeignKey(Foo)
user = ForeignKey(User)
だけ多くの-たい
法何か関係?
あなたのコントロール下でモデルから多対多の関係を定義することができるはずです。あなたのケースでは 'User'をサブクラス化し、その関係をバックリファレンスで追加し、設定で' AUTH_USER_MODEL'を定義します。 –