django-allauth 不使用我的自定义适配器

bch*_*hun 8 django adapter django-allauth

我正在使用django 1.6.5django-allauth 0.18.0,一旦我们在 django 的管理面板中创建社交应用程序,社交登录就会按预期工作。

因此,我的下一步是尝试通过使用适配器来更改模块的行为。

它在文档中看起来很简单, 但不知何故,我似乎无法让django-allauth使用我的自定义适配器。

所以这是我尝试将pdb插入到我的适配器方法中的尝试。

这是我的文件夹/文件结构:

.
??? manage.py
??? requirements.freeze
??? foo
?   ??? __init__.py
?   ??? settings.py
?   ??? urls.py
?   ??? wsgi.py
??? foo_app
    ??? adapters.py
    ??? views.py
    ??? etc...
Run Code Online (Sandbox Code Playgroud)

这是我的foo/settings.py文件:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sites',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'south',
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'allauth.socialaccount.providers.facebook',
    'foo_app'
)
ACCOUNT_ADAPTER="foo_app.adapters.FooAppAccountAdapter"
SOCIALACCOUNT_ADAPTER="foo_app.adapters.FooAppSocialAccountAdapter"
Run Code Online (Sandbox Code Playgroud)

这是我的foo_app/adapters.py文件:

# -*- coding: utf-8 -*-

import pdb

from allauth.account.adapter import DefaultAccountAdapter
from allauth.socialaccount.adapter import DefaultSocialAccountAdapter


class FooAppAccountAdapter(DefaultAccountAdapter):
    def save_user(self, request, user, form, commit=true):
        print "FooAppAccountAdapter.save_user"
        pdb.set_trace()
        return super(FooAppAccountAdapter, self).save_user(
            request, user, form, commit
        )


class FooAppSocialAccountAdapter(DefaultSocialAccountAdapter):
    def pre_social_login(self, request, sociallogin):
        print "FooAppSocialAccountAdapter.pre_social_login"
        pdb.set_trace()
        return super(FooAppSocialAccountAdapter, self).pre_social_login(
            request, sociallogin
        )

    def save_user(self, request, sociallogin, form=None):
        print "FooAppSocialAccountAdapter.save_user"
        pdb.set_trace()
        return super(FooAppSocialAccountAdapter, self).save_user(
            request, sociallogin, form
        )
Run Code Online (Sandbox Code Playgroud)

我的set_trace都没有工作,我想我可能只是忘记了设置中的某些内容,但无法弄清楚。

那么我错过了什么或做错了什么?

Kir*_*i K 5

您必须将 ACCOUNT_ADAPTER = 'project.users.adapter.MyAccountAdapter' 添加到 setting.py

有关自定义适配器类的更多详细信息,请查看此链接https://django-allauth.readthedocs.io/en/latest/advanced.html#custom-redirects