django rest注册api错误:此字段是必需的

django rest注册api错误:此字段是必需的,django,rest,api,frameworks,registration,Django,Rest,Api,Frameworks,Registration,您好,我想为我的django rest api创建一个简单的注册api 但是当我想用curl测试注册时,我总是会遇到这样的错误: {“用户名”:[“此字段是必需的。”],“密码”:[“此字段是必需的。”]} 这是我的简历: curl--request POST--urlhttp://localhost:8000/auth/register/ --标题'content type:application/json'--数据'{“username”:“user1”,“password”:“hunter

您好,我想为我的django rest api创建一个简单的注册api 但是当我想用curl测试注册时,我总是会遇到这样的错误: {“用户名”:[“此字段是必需的。”],“密码”:[“此字段是必需的。”]}

这是我的简历:

curl--request POST--urlhttp://localhost:8000/auth/register/ --标题'content type:application/json'--数据'{“username”:“user1”,“password”:“hunter2”}'
views.py.pi

类注册API(generics.GenericAPIView):
serializer\u class=CreateUserSerializer
def post(自我、请求、*args、**kwargs):
serializer=self.get\u序列化程序(data=request.data)
serializer.is\u有效(raise\u exception=True)
user=serializer.save()
返回响应({
“用户”:UserSerializer(用户,context=self.get\u serializer\u context()).data,
“token”:AuthToken.objects.create(用户)
})
序列化程序.py

class CreateUserSerializer(serializers.ModelSerializer):
类元:
模型=用户
字段=('id','username','password')
extra_kwargs={'password':{'write_only':True}
def创建(自我验证的_数据):
user=user.objects.create_user(已验证的_数据['username'],
没有一个
已验证的_数据['password'])
返回用户
类UserSerializer(serializers.ModelSerializer):
类元:
模型=用户
字段=('id','username')
也许序列化程序有问题?我已经试过了,所以找出问题出在哪里,但我找不到它

试试这个:

class CreateUserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('id', 'username', 'email', 'password')
        extra_kwargs = {'password' : {'write_only': True}}
    def create(self, validated_data):
        user = User.objects.create_user(**validated_data)
        return user

或参考链接

您是否覆盖了默认解析器?检查这个,非常感谢它的工作!你可以解释我的代码不起作用的原因吗?兄弟,Create_user参数已经在模型中使用BaseUserManger获取用户名和密码,所以你不需要再次请求它们,只需将数据传递到Create_user中,然后将其验证并存储。瞧!