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)