我有下面的代码,它在 django 1.4 中运行良好,因为我升级了代码中的所有内容,因为信号根本没有被触发,所以仍然可以接受。
以前,当我在 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")