我希望使用我创建的帐户模型来处理有关用户的财务数据。如何确保django-allauth在注册用户时创建此模型,并将通过新用户和帐户模型的密钥进行链接?
答案 0 :(得分:1)
您可以实现自定义管道。首先在django SOCIAL_AUTH_PIPELINE
文件中修改settings
,如下所示:
SOCIAL_AUTH_PIPELINE = (
'social.pipeline.social_auth.social_details',
'social.pipeline.social_auth.social_uid',
'social.pipeline.social_auth.auth_allowed',
'social.pipeline.social_auth.social_user',
'social.pipeline.user.get_username',
'social.pipeline.user.create_user',
'social.pipeline.social_auth.associate_user',
'social.pipeline.social_auth.load_extra_data',
'social.pipeline.user.user_details',
'yourapp.pipeline.add_account'
)
然后在yourapp
创建pipeline
模块中,或者您可以使用现有模型,并在此模型中使用以下代码创建函数add_account
:
def add_account(backend, details, response, user=None, is_new=False, *args, **kwargs):
if is_new:
Account.objects.create(user=user)
更新
管道就是django-allauth在认证过程中会调用的函数。因此,您可以为此过程添加一些自定义函数。