2013-04-13 65 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())'作爲最後一個參數。 –

回答