That's a good question. I haven't worked with forms in years but I can say a couple of things about serializers. In HackSoft's styleguide they recommend using serializers for data validation/presentation only. In their examples, the serializers are nested in the view class and don't interact with the service layer. (https://github.com/HackSoftware/Django-Styleguide?tab=readme-ov-file#plain) At my company, we ended up calling the service functions from inside the serialisers' create and update methods (https://www.django-rest-framework.org/api-guide/serializers/#saving-instances). This allowed us to make better use of the GenericAPIView classes (https://www.django-rest-framework.org/api-guide/generic-views/#examples).