Python 字段重命名时PUT请求失败

Python 字段重命名时PUT请求失败,python,django,django-rest-framework,Python,Django,Django Rest Framework,序列化程序.py class CategorySerializer(serializers.ModelSerializer) : id = serializers.IntegerField(source='category_id') name = serializers.CharField(source='category_name') class Meta: model = Category fields = ['id', 'name'

序列化程序.py

class CategorySerializer(serializers.ModelSerializer) :
    id = serializers.IntegerField(source='category_id')
    name = serializers.CharField(source='category_name')

    class Meta:
        model = Category
        fields = ['id', 'name']
上面的方法对于GET很好,但当我运行PUT请求时,它将进入失败块

views.py用于PUT

request.method == 'PUT':
        serializer = CategorySerializer(category, data=request.data)
        if serializer.is_valid():
            serializer.save()
            response = {
                'status': status.HTTP_200_OK,
                'message' : "Category Updated",
            }
            return HttpResponse(json.dumps(response), content_type='application/json')
        else :
            response = {
                'status': status.HTTP_400_BAD_REQUEST,
                'message' : "Category not found",
            }
            return HttpResponse(json.dumps(response), content_type='application/json')
我跟着卷曲跑

curl-X PUT-d“category_name=xyz”

答复:

{"status": 400, "message": "Category not found"}
每次它都进入其他部分


专家们请帮忙

我认为
id
字段有问题,这是必需的。但您只发送了
name
字段,请尝试使用
partial

serializer = CategorySerializer(category, data=request.data, partial=True)

您没有附加的序列化程序错误,但看起来应该为
PUT
请求方法设置
partial
参数。 试一试

文件

serializer = CategorySerializer(category, data=request.data, partial=True)