経由でインストールされるサードパーティのパッケージを使用する 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()
継承してサブクラス化する必要があると思いますが、もちろん、必要なすべての基本データを含む元のモデルへの参照を失います。