Мой пользовательский адаптер не используется django-allauth
Я использую django 1.6.5 и django-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...
вот мой файл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"
А вот мойфайл 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
)
Ни один из моихset_trace не работает, и я думаю, что я мог просто что-то забыть в настройках, но не могу понять это.
Так чего мне не хватает или делаю не так, ребята?
1 ответ
Вы должны добавить ACCOUNT_ADAPTER = 'project.users.adapter.MyAccountAdapter' в setting.py
для получения дополнительной информации о настройке класса адаптера перейдите по этой ссылке https://django-allauth.readthedocs.io/en/latest/advanced.html