问题描述
我正在尝试从一个模型中创建一个 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")