2013-04-13 35 views
0

我有下面的代码在django 1.4中完美工作,因为我升级了代码中的所有东西仍然可以接受信号没有被解雇。django社交auth pre_update信号升级到Django 1.5时没有被解雇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(s​​ender,Document)'。另外,您可能希望确保只有'dispatch_uid'和'import uuid'并发送'dispatch_uid = str(uuid.uuid1())'作为最后一个参数。 –

回答