2017-08-30 7 views
2

ユーザーに関する財務データを処理するために作成したアカウントモデルを使用したいと考えています。ユーザー登録時にdjango-allauthがこのモデルを作成する方法を確認し、新規ユーザーとアカウントモデルの両方のキーをリンクしますか?ユーザー作成時に複数のモデルを使用する

答えて

1

カスタムパイプラインを実装できます。

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' 
) 

が続いyourapppipelineモジュールを作成するか、既存のモデルを使用し、このモデルの内側に次のコードを使用して機能add_accountを作成することができます:

def add_account(backend, details, response, user=None, is_new=False, *args, **kwargs): 
    if is_new: 
     Account.objects.create(user=user) 

のことができます。まず、このようなジャンゴsettingsファイルにSOCIAL_AUTH_PIPELINEを変更詳細はherehereです。

UPDATE

パイプラインはちょうどウィッヒがautenticationプロセス中のジャンゴ - allauthによって呼び出される機能です。したがって、このプロシージャにカスタム関数を追加できます。

+0

パイプラインの仕組みに慣れていないので、詳細を教えてください。 –

+0

@AlexCreamerは私の更新をチェックします。 – neverwalkaloner

+0

あなたはどのようにアカウント作成のためにuser = userを入れますか?私はpkを使う必要はありませんか? –

関連する問題