我正在构建一个DRF应用程序,该应用程序使用Django rest auth实现社交登录。我现在遇到的问题是,我想扩展我的用户模型,但我担心如果我更改用户身份验证模型,由于rest身份验证链接,迁移将完全破坏我的项目。
因此,我的选择是创建一个UserData字段,并通过一对一字段将其挂接到User。然而,我不知道如何实例化一个新的UserData对象,并在每次注册或通过Django rest auth api创建新用户时将其链接到User。
如有任何帮助和建议,我们将不胜感激。
看起来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的情况下,不确定它是哪一个(-只需确保它是正确的。