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