0

我正在构建一个 DRF 应用程序,其中实现了用于社交登录的 Django-rest-auth。我现在遇到的问题是我想扩展我的用户模型,但我担心如果我更改用户身份验证模型迁移将完全破坏我的项目,因为 rest-auth 链接。

所以我的选择是创建一个 UserData 字段并通过一对一的字段将其连接到 User 。但是,我不确定每次通过 Django-rest-auth api 注册或创建新用户时如何实例化新的 UserData 对象并将其链接到用户。

对此的任何帮助和建议将不胜感激。

4

1 回答 1

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

如果刚刚创建了新实例, created 将为 True。instance 是新的用户实例。

发件人是您的用户的模型(不确定在 django-rest-auth 的情况下是哪一个) - 只要确保它是正确的。

于 2018-08-05T06:43:53.140 回答