自动将用户令牌分配给自定义概要文件模型Django rest框架

2024-09-28 21:00:25 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我还有一个自定义用户模型UserProfileInfo,其中有一个字段将令牌连接到用户 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时自动将令牌分配给用户


Tags: instance用户tokentrue信号modelssavecreate
1条回答
网友
1楼 · 发布于 2024-09-28 21:00:25

可以在一个信号方法中包含两个任务的代码

您可以做的是,首先创建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()

相关问题 更多 >