Django: ошибка целостности при аутентификации от Google. Дубликат записи показан - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь войти через 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 не создается объект и не создается профиль для него.

Может кто-нибудь выяснить, что происходит за кулисами?

...