Я пытаюсь войти через google в моем приложении django. Я получаю ошибку целостности при попытке сохранить пользователя.
Ошибка -
IntegrityError at / auth / complete / google-oauth2 / duplicate key value
нарушает уникальное ограничение "pd_user_master_user_id_key" ПОДРОБНОЕ: Ключ
(user_id) = (55) уже существует
Это функция, которую я использую для сохранения профиля пользователя по умолчанию через его идентификатор в модели профиля пользователя. -
def save_profile(backend, user, response, *args, **kwargs):
profile = UserProfile(user_id=user.id)
#print(request.user.id)
profile.contact_no=1234567890
profile.department=1
profile.status=0
profile.save()
return {"profile": profile}
А это конвейер в соответствии с рекомендациями -
SOCIAL_AUTH_PIPELINE = (
'social_core.pipeline.social_auth.social_details',
'social_core.pipeline.social_auth.social_uid',
'social_core.pipeline.social_auth.auth_allowed',
'social_core.pipeline.social_auth.social_user',
'social_core.pipeline.user.get_username',
'social_core.pipeline.user.create_user',
'pd.views.Users.save_profile', # <--- set the path to the function
'social_core.pipeline.social_auth.associate_user',
'social_core.pipeline.social_auth.load_extra_data',
'social_core.pipeline.user.user_details',
)
В БД пользователь создается в таблице auth_user, но в таблице social_auth_usersocialauth не создается объект и не создается профиль для него.
Может кто-нибудь выяснить, что происходит за кулисами?