Django 通过使用FK覆盖另一个模型的保存方法来更新对象/实例

Django 通过使用FK覆盖另一个模型的保存方法来更新对象/实例,django,django-models,django-queryset,Django,Django Models,Django Queryset,我有以下型号: class Acc(models.Model): name = models.CharField( max_length=35) class User(AbstractBaseUser, PermissionsMixin): acc = models.ForeignKey(Acc, blank=True, null=True, related_name='owner', on_delete=models.CASCADE) class Note(m

我有以下型号:

 class Acc(models.Model):
        name = models.CharField( max_length=35)

class User(AbstractBaseUser, PermissionsMixin):

    acc = models.ForeignKey(Acc, blank=True, null=True, related_name='owner', on_delete=models.CASCADE)


class Note(models.Model):
    name = models.CharField( max_length=35
    receiver = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True, on_delete=models.CASCADE)

class Item(models.Model):
    note = models.ForeignKey(Notification, on_delete=models.CASCADE,)
    acc = models.ForeignKey(Acc, on_delete=models.CASCADE)

    def save(self, *args, **kwargs):

        .....
        # update note
        Note.objects.filter(id=self.note_id).update(receiver=self.account.owner)
我覆盖
对象/模型上的
保存
方法,以使用外键更新
注释
模型接收器

我得到以下错误:

int() argument must be a string, a bytes-like object or a number, not 'RelatedManager'
它由以下行触发:

Note.objects.filter(id=self.note_id).update(receiver=self.acc.owner)

所有者
Acc
模型的相关管理者,是
用户
模型,我想为
接收者
输入注释获取该模型。

您的模型似乎有误。用户有Acc的外键,这意味着每个Acc可能有许多用户对象。因此
Acc.owner
是一个管理器,允许您通过例如
Acc.owner.all()
访问所有这些对象


要么您希望FK从一个Acc转到另一个方向,从一个Acc转到另一个用户,这意味着每个用户可以有多个Acc,要么您应该使用OneToOneField,这样就有一个Acc和一个用户。

您的模型似乎是错误的。用户有Acc的外键,这意味着每个Acc可能有许多用户对象。因此
Acc.owner
是一个管理器,允许您通过例如
Acc.owner.all()
访问所有这些对象


要么您希望FK朝另一个方向移动,从Acc到用户-这意味着每个用户可以有多个Acc-要么您应该使用OneToOneField,这样就有一个Acc和一个用户。

请显示完整回溯。添加的更多信息请显示完整回溯。添加的更多信息我更改与OneToOneField的关系我更改与OneToOneField的关系