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")
這只是一個猜測,但我遇到發件人參數類似的問題。只要我將參數取出,它就會重新開始工作。如果你仍然需要控制信號的發送者,你應該嘗試'issubclass(sender,Document)'。另外,您可能希望確保只有'dispatch_uid'和'import uuid'併發送'dispatch_uid = str(uuid.uuid1())'作爲最後一個參數。 –