RelatedObjectDoesNotExist: User has no userprofile

后端 未结 7 1065
旧巷少年郎
旧巷少年郎 2020-12-28 17:58

So I\'ve extended my user with the field score like this:

models.py:

class UserProfile(models.Model):
    user = models.OneToOneField(Us         


        
7条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-28 18:29

    You have to create a userprofile for the user first:

    profile = UserProfile.objects.create(user=request.user)
    

    In your views.py you can use get_or_create so that a userprofile is created for a user if the user doesn't have one.

    player, created = UserProfile.objects.get_or_create(user=request.user)
    

    UPDATE: For automatically creating user profiles every time a new user is made, use singals. In myapp/signals.py do something like this:

    @receiver(post_save, sender=User, dispatch_uid='save_new_user_profile')
    def save_profile(sender, instance, created, **kwargs):
        user = instance
        if created:
            profile = UserProfile(user=user)
            profile.save()
    

提交回复
热议问题