diff --git a/program/views.py b/program/views.py index ce644d461398f85b757f19a8cf7158b9a5873b8d..7c852a674690617d41f38ea43c0d844c1aeab8d1 100644 --- a/program/views.py +++ b/program/views.py @@ -838,14 +838,23 @@ class APIHostViewSet(ActiveFilterMixin, viewsets.ModelViewSet): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) else: - Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) def update(self, request, *args, **kwargs): + partial = kwargs.get("partial", False) + host = self.get_object() serializer = HostSerializer( - data=request.data, context={"updated_by": request.user.username} + host, + data=request.data, + context={"updated_by": request.user.username}, + partial=partial, ) if serializer.is_valid(): serializer.save() - return Response(serializer.data, status=status.HTTP_201_CREATED) + return Response(serializer.data, status=status.HTTP_200_OK) else: - Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) + + def partial_update(self, request, *args, **kwargs): + kwargs["partial"] = True + return self.update(request, *args, **kwargs)