我目前收到一个信号,当用户注册网站时会自动为该用户创建令牌对象。
我还有一个自定义的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
您可以在一个信号方法中同时完成这两项任务的代码。
您可以做的是先创建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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。