在django rest框架中注册时,如何允许用户选择组?

在django rest框架中注册时,如何允许用户选择组?,django,django-rest-framework,django-registration,Django,Django Rest Framework,Django Registration,我正在尝试在我的rest框架API中创建一个自定义注册,其中用户可以使用以下数据发出POST请求 ['email', 'username', 'password', 'password2', 'groups'] **我的问题**:当我在照片中发出像这样的post请求时,我得到了一个错误{“groups”:[“类型不正确。预期的pk值,收到的str.]” 我的目标:我需要用户能够在“组”字段中选择组的名称 我的文件: 发生错误的原因是您将组定义为外键(我猜是因为您没有共享models.py

我正在尝试在我的rest框架API中创建一个自定义注册,其中用户可以使用以下数据发出
POST
请求

['email', 'username', 'password', 'password2', 'groups']
  • **我的问题**:当我在照片中发出像这样的post请求时,我得到了一个错误
    {“groups”:[“类型不正确。预期的pk值,收到的str.]”
  • 我的目标:我需要用户能够在“组”字段中选择组的名称
  • 我的文件

发生错误的原因是您将组定义为外键(我猜是因为您没有共享models.py),但尝试传递字符串值。因此,错误表示它需要组对象的id。如果在请求中发送admin组的id,则不会发生错误

此外,您不需要此部件:

data['response'] = 'successfully registered new user.'
data['email'] = account.email
data['username'] = account.username
data['groups'] = account.groups
您可以简单地使用:

return Response(serializer.data)

Groups是django中的默认模型,我没有创建它,它是一个manytomayfield好的,就像我说的,它是一种外键。如果您检查数据库中管理员组的id并将其与请求一起发送,则错误将消失。
data['response'] = 'successfully registered new user.'
data['email'] = account.email
data['username'] = account.username
data['groups'] = account.groups
return Response(serializer.data)