我想将一些数据插入到多对多字段中。我收到此错误
user 是该函数的无效关键字参数
我也尝试了相关名称...但仍然不起作用...
我的模型如下所示:
模型.py
class Workspace(models.Model):
user = models.ManyToManyField(User,null=False, blank=False, related_name='members')
workspace_name = models.CharField(max_length=80, null=False, blank=False)
workspace_cat =models.CharField(max_length=80, null=True, blank=True)
views.py
db= Workspace(user=5, workspace_name=data_to_db['workspace_name'],workspace_cat=data_to_db['workspace_category'])
db.save()
有人有想法吗?多谢!
你用了一个ManyToMany https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ManyToManyField字段为user
你的领域Workspace
对象,你不能给它一个用户,这不是ManyToMany
有效,那将是一个ForeignKey https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ForeignKey.
基本上,使用ForeignKey
,每个工作区有一个User
与其相关联,有一个直接链接Workspace -> User
,所以创建一个是有意义的Workspace
并传递给它一个User
,就像您要填写CharField
.
A ManyToMany
关系意味着多个用户可以关联到一个Workspace
和几个Workspaces
to one User
。当使用ManyToMany
,你会创建你的Workspace
and then添加一些User
s to it.
要添加到ManyToMany
关系,执行以下操作:
my_user = User.objects.get(pk = 5)
my_workspace = Workspace(workspace_name=data_to_db['workspace_name'],workspace_cat=data_to_db['workspace_category'])
my_workspace.save() # committing to the DB first is necessary for M2M (Jurudocs edit)
my_workspace.users.add(my_user)
You 应该重命名user
字段到users
使关系名称更清晰。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)