我通过django创建用户配置文件更新api:
在网址中:
url(r'^/api/users/(?P<user_id>[0-9]+)$', UserView.as_view(), name='user_profile'),
我的观点是:
class UserView(APIView):
def patch(self, request, user_id):
# logging.info('user Id: %s' % user_id)
logging.info('in patch...')
user = User.objects.get(id=user_id)
serializer = UserSerializer(user, data=request.data, partial=True)
if serializer.is_valid():
serializer.save()
return Response(status=status.HTTP_200_OK)
return Response(status=status.HTTP_400_BAD_REQUEST)
为什么补丁def根本没有被调用?! (我不允许504方法)
我的要求是:
补丁> http://localhost:8000/api/users/2
当我在视图中删除 user_id
参数时,它可以工作,但我需要在路径中获取用户ID .
2 回答
您必须提供实例eq:
serializer = UserSerializer(instance=user, data=request.data, partial=True)
试试这个 .