Мой пользовательский адаптер не используется 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

Другие вопросы по тегам