Создание пользовательской модели при создании нового пользователя с помощью Django-rest-auth

Я создаю приложение DRF с Django-rest-auth, реализованным для входа в социальную сеть. Проблема, с которой я столкнулся сейчас, заключается в том, что я хочу расширить свою пользовательскую модель, но боюсь, что если я изменю пользовательскую модель аутентификации, миграция завершит мой проект из-за ссылки rest-auth.

Поэтому я могу создать поле UserData и подключить его к пользователю через одно-одно поле. Однако я не уверен, как создать экземпляр нового объекта UserData и связать его с пользователем каждый раз, когда новый пользователь регистрируется или создается через API Django-rest-auth.

Любая помощь и совет для этого будут оценены.

1 ответ

Решение

Похоже, что сигнал django - ваш лучший способ достичь этого.

Вы можете просто зарегистрировать функцию получателя, которая будет вызываться каждый раз, когда создается новый пользователь (или обновляется модель).

Там вы можете создать свои UserData.

Пример:

from django.db.models.signals import post_save
from django.dispatch import receiver

@receiver(post_save, sender=User)
def create_user_data(sender, update_fields, created, instance, **kwargs):
    if created:
        # Create your user data
        pass

созданный будет Истина, если новый экземпляр был только что создан. Экземпляр - это новый пользовательский экземпляр.

Отправитель - это модель вашего пользователя (не уверен, какая именно это в случае django-rest-auth) - просто убедитесь, что она верная.

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