2

経由でインストールされるサードパーティのパッケージを使用する Django プロジェクトがありますpip。そのパッケージからモデルを拡張したいのですが、この場合のベスト プラクティスを知りたいです。モンキー パッチを適用することで必要な機能を取得できますが、これが必ずしも良い方法ではないことは理解しています。メソッドを追加するだけなので、データベースに影響を与えるものは何もありません。

これが私の現在の解決策です。

models.py:

from allauth.socialaccount.models import SocialAccount

def get_foo(self):
    ...
    return foo

SocialAccount.get_foo = get_foo

views.py

social_acc = SocialAccount.objects.get(
    ...
)

foo = social_acc.get_foo()

継承してサブクラス化する必要があると思いますが、もちろん、必要なすべての基本データを含む元のモデルへの参照を失います。

4

1 に答える 1