当升级到Django 1.5时,Django社会认证pre_update信号不会被触发



我有下面的代码,它在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")

您可能也升级了django-social-auth。

不推荐使用

信号:http://django-social-auth.readthedocs.org/en/latest/deprecated.html

下面是使用管道步骤设置facebook头像的例子:http://tryolabs.com/Blog/2012/02/13/get-user-data-using-django-social-auth/

最新更新