开发者社区> 问答> 正文

自动将用户令牌分配给自定义配置文件模型Django Rest框架

我目前收到一个信号,当用户注册网站时会自动为该用户创建令牌对象。

我还有一个自定义的User模型,UserProfileInfo,其中有一个将Token与用户连接的字段token = models.OneToOneField(Token,related_name ='token',on_delete = models.CASCADE,blank = True, null = True)`但是,我希望在创建userprofileinfo时自动分配它,这在信号中发生。

@receiver(post_save, sender=User)
def create_auth_token(sender, instance, created, \*kwargs):
    if created:
        token = Token.objects.create(user=instance)
        UserProfileInfo

@receiver(post_save, sender=User)
def create_or_update_user_profile(sender, instance, created, \*kwargs):
    if created:
        UserProfileInfo.objects.create(user=instance)
    else:
        instance.userprofileinfo.save()

(第一个信号创建令牌,第二个信号创建userprofileinfo)

我想知道在创建userprofileinfo时如何自动为用户分配令牌。

问题来源:stackoverflow

展开
收起
is大龙 2020-03-24 14:24:37 484 0
1 条回答
写回答
取消 提交回答
  • 您可以在一个信号方法中同时完成这两项任务的代码。

    您可以做的是先创建UserProfileInfo对象,然后为该用户创建令牌。

    @receiver(post_save, sender=User)
    def create_or_update_user_profile(sender, instance, created, \*kwargs):
        if created:
            UserProfileInfo.objects.create(user=instance)
            token = Token.objects.create(user=instance)
        else:
            instance.userprofileinfo.save()
    

    回答来源:stackoverflow

    2020-03-24 14:24:46
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
开源广进,用service cataloq构造k8s服务能力中心 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载