在用户创建时使用多个模型

时间:2017-08-30 17:40:01

标签: django django-allauth

我希望使用我创建的帐户模型来处理有关用户的财务数据。如何确保django-allauth在注册用户时创建此模型,并将通过新用户和帐户模型的密钥进行链接?

1 个答案:

答案 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)

您可以找到更多详细信息herehere

更新

管道就是django-allauth在认证过程中会调用的函数。因此,您可以为此过程添加一些自定义函数。