Если мы говорим про Django Rest Framework, то есть 2 решения.
1. Несколько сериализаторов, один для C, другой для R, третий для U. Потом во View
переопределяем метод получения класса сериализатора в зависимости от метода запроса (POST, PUT, PATCH, GET):
def get_serializer_class(self):
method = self.request.method
if method == 'POST':
return CompanyCreateSerializer
if method == 'PATCH':
return CompanyUpdateSerializer
if method == 'GET':
return CompanyReadSerializer
2. Создать сложный, запутанный сериализатор, наследник не ModelSerializer, а просто Serializer, и в нём переопределить поведение кучи методов (не рекомендую - устанете поддерживать потом).