我正在使用实现了用于社交登录的Django-rest-auth构建DRF应用。 我现在遇到的问题是我想扩展用户模型,但是担心如果更改用户身份验证模型,迁移会由于rest-auth链接而完全破坏我的项目。
所以我的选择是创建一个UserData字段,并通过一对一字段将其挂接到User。但是,我不确定每次通过Django-rest-auth api注册或创建新用户时如何实例化新的UserData对象并将其链接到User。
对此将提供任何帮助和建议。
答案 0 :(得分: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。实例是新的用户实例。
发件人是您的用户的模型(不确定django-rest-auth是哪一种)-只需确保它是正确的即可。