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())'作为最后一个参数。 –