2016-09-08 1 views
0

steam open ID를 사용하여 사용자를 생성하도록 구성된 python social auth가 있습니다. 그리고 별도의 모델 인 플레이어가 있습니다.이 플레이어는 사용자와의 일대일 관계로 관련 필드가 추가 저장되며 그 중 하나는 사용자의 증기입니다.Python social auth는 사용자와 관련된 모델을 만들 수 없습니다.

저는 플레이어를 생성하고 해당 필드 중 하나에 스팀 코드를 저장하는 기능을 포함하도록 파이프 라인을 확장했습니다.

데이터베이스에 아직 저장되어 있지 않은 사용자는 모든 것이 잘됩니다. 즉, 응용 프로그램이 처음으로 로그인 할 때 사용자를 만들고 필드를 저장하지만 로그인 할 때 두 번째로이 오류가 발생합니다.

"{Dictionary}": "User.player"를 할당 할 수 없습니다. "Player"인스턴스 여야합니다. Where 사전은 필드 집합입니다.

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

코드에 중단 점을 추가하면 프로그램에서 두 번째로 호출하지 않습니다. 처음 로그인 할 때만 프로그램이 실제로 중단 점에 도달합니다. 두 번째로 중단 점에 도달하지 않고 오류를 throw합니다. – dosedoe

답변

0

내 자신의 문제를 해결 : 여기

내 기능입니다 문제 내 모델은 키워드 인자의 키 중 하나와 같은, 그래서 그것은 잘못 '을 저장하려고 한 것이 었습니다 플레이어 '사전을 내 모델 필드에 추가하십시오. '선수'를 '프로필'로 변경하면 문제가 해결되었습니다.