我有这个错误:
'people'是此函数的无效关键字参数
class Passage(models.Model):
name= models.CharField(max_length = 255)
who = models.ForeignKey(UserProfil)
class UserPassage(models.Model):
passage = models.ForeignKey(Passage)
people = models.ManyToManyField(UserProfil, null=True)
class UserProfil(models.Model):
user = models.OneToOneField(User)
name = models.CharField(max_length=50)
我试试:
def join(request):
user = request.user
user_profil = UserProfil.objects.get(user=user)
passage = Passage.objects.get(id=2)
#line with error
up = UserPassage.objects.create(people= user_profil, passage=passage)
return render_to_response('thanks.html')
如何正确地做到这一点?谢谢!
答案 0 :(得分:21)
您需要先保存/创建对象,然后才能添加ManyToMany
关系:
up = UserPassage.objects.create(passage=passage)
up.people.add(user_profil)
ManyToMany
关系不会保存为表格中的列。请阅读此处的第一个回复以获得更好的解释:
Django ManyToMany field is not created in model
@DanielRoseman:因为ManyToMany不是字段,所以至少不存在作为数据库列存在的字段。这是与链接表的关系。您会发现已经创建了一个名为myapp_teacher_subjects的表,其中包含教师和主题的外键。