我有一个 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()
我觉得我应该继承和子类化,但是当然我失去了对包含我需要的所有基本数据的原始模型的引用。