Django: invalid keyword argument for this function

前端 未结 1 917
野的像风
野的像风 2021-02-19 16:33

I want to insert some data into a many to many field. I \'m getting this Error

user is an invalid keyword argument for this function

<
1条回答
  •  孤独总比滥情好
    2021-02-19 17:10

    You used a ManyToMany field for the user field of your Workspace object, you can't give it one user, that's not how a ManyToMany works, that would be a ForeignKey.

    Basically, using a ForeignKey, each workspace has one User associated to it, there's a direct link Workspace -> User, so it makes sense to create a Workspace and pass it an User, like you would be filling in a CharField.

    A ManyToMany relationship means that several users can be associated to a Workspace and several Workspaces to one User. When using a ManyToMany, you would create your Workspace and then add some Users to it.

    To add to a ManyToMany relationship, do the following:

    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 should rename the user field to users to make the relationship name clearer.

    0 讨论(0)
提交回复
热议问题