#django-rest-framework #django-allauth #django-rest-auth
#django-rest-framework #django-allauth #django-rest-auth
Вопрос:
Я использую django-allauth
and dj-rest-auth
в своем проекте django-rest для регистрации пользователей и разрешения им входить в мое приложение react-native. Проблема, с которой я сталкиваюсь, заключается в том, что когда пользователь зарегистрирован, он создает конкретного пользователя в social accounts
таблице. Тем не менее, я хочу также создать user profile
для каждого участника, который регистрируется через Facebook, и сохранить дополнительные данные (имя, адрес электронной почты, изображение). Я просмотрел документы, блоги, stack-overflow, но просто не могу понять, как я могу это сделать.
Пока что у меня есть social_login
приложение, которое управляет входом в систему и имеет представление, которое имеет следующее:
from allauth.socialaccount.providers.facebook.views import FacebookOAuth2Adapter
from dj_rest_auth.registration.views import SocialLoginView
class FacebookLogin(SocialLoginView):
adapter_class = FacebookOAuth2Adapter
Как я могу отредактировать social accounts
модель? и как я могу создать профиль пользователя в своем users
приложении после регистрации пользователя с помощью Facebook?
Обновить:
Я понял, что в Django у меня может быть только одна таблица авторизации пользователя, которая управляет пользователем, независимо от того, являются ли они клиентами или сотрудниками. Теперь я перешел на использование пользовательской модели пользователя с использованием AbstractUser
from Django. Потенциально я мог бы создать еще одну таблицу для профилей пользователей, которая затем могла бы содержать дополнительные сведения или расширять модель, которая у меня есть сейчас. Я расширю User
созданную мной модель, поскольку, по моему мнению, создание дополнительной модели было бы излишним для моих текущих потребностей.
Это сообщение в блоге помогло мне перейти на использование пользовательской модели пользователя в середине проекта.
Я также понял, что могу использовать allauth
сигналы ( user_signed_up
в частности, для моего случая) для запуска функции. Я довольно новичок в Python / Django, поэтому даже не знал, что такое сигнал, примерно 30 минут назад. Справедливо сказать, что каждый день вы узнаете что-то новое 🙂