2013-04-13 2 views
0

코드에서 모든 기능을 업그레이드 한 이후 신호가 전혀 작동하지 않는 상태로 남아 있기 때문에 아래 코드는 장고 1.4에서 완벽하게 작동했습니다.django social auth pre_update 신호가 장고 1.5로 업그레이드 할 때 해고되지 않습니다.

이전에는 1.4에 있었을 때 사용자 정보를 유지하기 위해 사용자 프로필을 사용하고 있었지만 업그레이드 할 때 하나의 테이블에 모든 세부 정보가 포함 된 사용자 지정 사용자 모델을 사용했습니다. 나는 사회적 인증을 테스트 할 때이 모든 것이 잘 작동하므로이 부분에 동의하기 때문에 관련성이 있다고 생각하지 않습니다.

def twitter_extra_values(sender, user, response, details, **kwargs): 
    """ 
    accounts - twitter_extra_values - signal 
    """ 
    try: 
     TwitterExtra.objects.get_or_create(
      user  = user, 
      screen_name = response.get('screen_name') 
     ) 
    except IntegrityError: 
     TwitterExtra.objects.get(
      user  = user, 
      screen_name = response.get('screen_name') 
     ).delete() 
     # recursively attempt to recreate the record 
     twitter_extra_values(sender, user, response, details, **kwargs) 

    return True 


pre_update.connect(twitter_extra_values, sender=TwitterBackend, dispatch_uid="accounts.twitter_extra_values") 
+0

이 그냥 추측하지만 보낸 사람 매개 변수를 사용하여 유사한 문제가 발생 하였다

여기에 파이프 라인 단계를 사용하여 페이스 북의 아바타를 설정하는 예입니다. 매개 변수를 제거하자마자 다시 작동하기 시작했습니다. 여전히 시그널의 송신자를 제어 할 필요가 있다면'issubclass (sender, Document)'를 시도해야한다. 또한, 단지 하나의 dispatch_uid와'import uuid'가 있는지 확인하고 마지막 매개 변수로'dispatch_uid = str (uuid.uuid1())'을 보내고 싶을 수도 있습니다. –

답변

관련 문제