对 http://www.django-rest-framework.org/tutorial/2-requests-and-responses/ 做补充
点击(此处)折叠或打开
- @api_view(['GET', 'PATCH', 'DELETE'])
- def snippet_detail(request, pk):
- """
- Retrieve, update or delete a snippet instance.
- """
- try:
- snippet = Snippet.objects.get(pk=pk)
- except Snippet.DoesNotExist:
- return Response(status=status.HTTP_404_NOT_FOUND)
-
- elif request.method == 'PATCH':
- newData = transferPatchData(snippet, request.data)
- serializer = SnippetSerializer(snippet, data=newData)
- if serializer.is_valid():
- serializer.save()
- return Response(serializer.data)
- return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
-
- def transferPatchData(obj, reqtData):
- newData = {}
- for attrName in obj.__dict__.keys():
- if re.search(r"^_", attrName):
- continue
- if reqtData.has_key(attrName):
- newData[attrName] = reqtData.get(attrName)
- else:
- newData[attrName] = getattr(obj, attrName)
- return newData
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26250550/viewspace-2120779/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26250550/viewspace-2120779/