list, create, retrieve, update, partial_update and destroy
В нужный вьюсет добавить миксин со стековерфлоу
class MyViewSet(MultiSerializerViewSetMixin, viewsets.ModelViewSet):
serializer_class = MyDefaultSerializer
serializer_action_classes = { # тут словарь с возможными сериализаторами для каждого случая
'list': MyListSerializer,
'create': MyCreateSerializer
# и т.д.
}
О какой генерации файлы вы говорите? Зачем Celery?
После чего данные подставляются в стандартную форму договора и экземпляр договора в формате doc или pdf присылается на почту того, кто заполнял эту форму.