Django ManyToMany 字段不接受正确的模型

问题描述

我正在尝试从一个模型中创建一个 manytomany 字段,该模型不是 manytomany 字段将包含其列表的模型。例如

class Following(models.Model):
    following_id = models.AutoField(primary_key=True)
    following_user = models.ForeignKey(User,models.DO_nothing,related_name="following_user")
    following = models.ManyToManyField(User,related_name="following")

这对我来说看起来都不错,但是当我尝试进入 shell 并执行类似 User.following.add(OtherUser) 的操作时,我收到一条错误消息,指出它期望 OtherUser 是 {{1} 的实例}}。为什么是这样?我在声明 Following 变量时没有指定 ManyToManyField 存储用户实例吗?

following

解决方法

1 - 创建用户:user = User(); user.save()

2 - 创建以下内容:following = Following(); following.save()

3 - 将用户添加到以下内容:following.following.add(user)

,

您只能将一个模型与其他模型引用一次。但是您使用 User model 两次,一次使用 following_user field,另一次使用 following field。在您的模型下方查看。

class Following(models.Model):
    following_id = models.AutoField(primary_key=True)
    following_user = models.ForeignKey(*User*,models.DO_NOTHING,related_name="following_user")
    following = models.ManyToManyField(*User*,related_name="following")