使用Django-rest-auth

时间:2018-08-05 06:18:51

标签: django django-rest-framework django-rest-auth django-custom-user

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

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

对此将提供任何帮助和建议。

1 个答案:

答案 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是哪一种)-只需确保它是正确的即可。

相关问题