Python 字段重命名时PUT请求失败
序列化程序.pyPython 字段重命名时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'
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)