Python社交身份验证无法创建与用户相关的模型

时间:2016-09-08 15:12:49

标签: django python-social-auth

我将python social auth配置为使用steam Open ID创建用户。我有一个单独的模型,播放器,它与用户存在一对一的关系,存储额外的字段,其中一个是用户的蒸汽。

我已经扩展了管道以包含一个创建播放器并将steamid保存到其中一个字段的函数。

当用户尚未存储在数据库中时,一切顺利。换句话说,应用程序创建用户并在我第一次登录时保存字段,但是第二次登录时会抛出此错误:

无法分配“{Dictionary}”:“User.player”必须是“Player”实例。字典是一组字段。

这是我的功能:

def save_profile(backend, user, response, *args, **kwargs):
import pdb; pdb.set_trace()
if backend.name == 'steam':
    player = Player(user = user,
        ingamename = kwargs['uid'],
        avatar = kwargs['details']['player']['steamid'])
    player.save()

1 个答案:

答案 0 :(得分:0)

解决了我自己的问题: 问题是我的模型与关键字参数中的一个键相同,因此错误地尝试保存“播放器”#39;字典到我的模型领域。改变玩家'到'个人资料'解决了这个问题。