Python Django Manytomy字段不接受正确的模型
我试图从一个模型中生成一个manytomy字段,该模型不是manytomy字段将包含列表的模型。e、 gPython Django Manytomy字段不接受正确的模型,python,django,django-models,manytomanyfield,Python,Django,Django Models,Manytomanyfield,我试图从一个模型中生成一个manytomy字段,该模型不是manytomy字段将包含列表的模型。e、 g class Following(models.Model): following_id = models.AutoField(primary_key=True) following_user = models.ForeignKey(User, models.DO_NOTHING, related_name="following_user") fol
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
是following
的实例。为什么会这样?在声明后面的变量时,我没有指定ManyToManyField存储用户实例吗
models.ManyToManyField(**User**,related\u name=“following”)
您只能将一个模型与其他模型引用一次。但是您使用了两次用户模型
,一次使用跟随用户字段
,另一次使用跟随字段
。看看你的模型下面
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")
1-创建一个用户:user=user();user.save()
2-创建以下内容:following=following();following.save()
3-将用户添加到以下位置:following.following.Add(user)
尝试以下操作:
当您的模型与另一个模型存在多对多关系时,可以看到使用commit=False的另一个副作用。如果模型具有多对多关系,并且在保存表单时指定commit=False,Django无法立即保存多对多关系的表单数据。这是因为在数据库中存在实例之前,不可能为实例保存多对多数据
为了解决这个问题,每次使用commit=False保存表单时,Django都会向ModelForm子类添加一个save_m2m()方法。手动保存表单生成的实例后,可以调用save_m2m()保存多对多表单数据。例如:我可以这样做,因为我添加了相关的\u name关键字参数。这似乎不是问题所在。我可以调用以下用户集和以下用户集,没有问题。问题就是我所描述的。此外,我需要使用用户两次,我的程序才能工作。