我想在一个多对多的字段中插入一些数据.我收到此错误
user是此函数的无效关键字参数
我也尝试使用relatedName ...但仍然没有工作...
我的模型看起来像这样:
models.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)
Run Code Online (Sandbox Code Playgroud)
views.py
db= Workspace(user=5, workspace_name=data_to_db['workspace_name'],workspace_cat=data_to_db['workspace_category'])
db.save()
Run Code Online (Sandbox Code Playgroud)
有人有想法吗?非常感谢!
Tho*_*zco 22
你使用了一个ManyToMany
字段作为user
你的Workspace
对象的字段,你不能给它一个用户,这不是一个ManyToMany
有效的方式,那将是一个ForeignKey
.
基本上,使用a ForeignKey
,每个工作区都有一个User
与之关联的工作区,有一个直接链接Workspace -> User
,所以创建一个Workspace
并传递它是有意义的User
,就像你要填写一个CharField
.
甲ManyToMany
关系意味着几个用户可以关联到一个Workspace
和几个Workspaces
到一个User
.使用a时ManyToMany
,你会创建你的Workspace
,然后添加一些User
s.
要添加到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)
Run Code Online (Sandbox Code Playgroud)
您应该重命名该user
字段以users
使关系名称更清晰.
归档时间: |
|
查看次数: |
20561 次 |
最近记录: |