我正在尝试通过django应用程序中的google登录。尝试保存用户时出现一些完整性错误。
错误是-
在/ auth / complete / google-oauth2 /重复的键值处出现IntegrityError 违反唯一约束“ pd_user_master_user_id_key”详情:密钥 (user_id)=(55)已经存在
这是我用来通过用户个人资料模型中的ID保存用户默认个人资料的功能。 -
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表中未创建任何对象,也没有为此用户创建任何配置文件。
任何人都可以清除掉幕后发生的事情吗?