如何更新 django 用户的 OneToOneField

how to update OneToOneField of django'user

我使用的是真正的 django 用户。
在我的项目中,我的用户可以创建多个战士。
当我想玩的时候,我必须选择其中之一。

所以这是我的 class 的样子:

class Warrior:
    nom = models.CharField(max_length=30, unique=True)
    ...

class Profile(models.Model):
    user = models.OneToOneField(User)
    warrior = models.ForeignKey(Warrior)

在我看来,我想改变我正在玩的真正的战士:

warrior = get_object_or_404(Warrior, id=id)
request.user.profile.warrior = warrior

但是该代码不起作用。我想我在某处有错误 .

request.user.profile.warrior = warrior
request.user.profile.save()