我需要使用code
中的patch
方法更新APIView
字段。
到目前为止,我有这个:
class UserDetailView(APIView):
def patch(self, request, user_id):
user = User.objects.get(id=user_id)
serializer = UserSerializerRead(user, data=request.data, partial=True)
if serializer.is_valid():
serializer.save()
return Response(status=HTTP_204_NO_CONTENT)
return Response(status=HTTP_400_BAD_REQUEST)
并且请求将是:
[{"action": "replace", "path": "/code", "value": "2"}]
我不明白补丁是如何工作的,这不会改变code
。
有人可以给我一些代码吗?
答案 0 :(得分:3)
PATCH
动词类似于POST
或PUT
,但如果它们丢失则会跳过必填字段。
如果UserSerializerRead
可以更新User
实例,则您的请求将是:
{'code': 2}
否则,您必须使用特定的序列化程序来解析action
/ path
/ value