我将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()
答案 0 :(得分:0)
解决了我自己的问题: 问题是我的模型与关键字参数中的一个键相同,因此错误地尝试保存“播放器”#39;字典到我的模型领域。改变玩家'到'个人资料'解决了这个问题。