I have a pretty large Django web application. The application is installed on a server and is working. It is divided into several Django apps, each with its own models and views.
The users of this application are also programmers, and sometimes they want to write scripts that manipulate the database. I want them to use the existing Django models.
However, I don't want them touching the big web application, they shouldn't be able to modify the views or write management commands that are installed on the server. Just scripts to run at their own convenience on their own private copy of the database. Ideally, they should be able to just pip install our-django-models
.
What's the best way of splitting the application into two parts? One will have to be a very slimmed-down Django application with just the models (which, again, are split into different Django apps). The other will need to be based on the first one, and provide everything else - views, their business logic, settings, etc...
What you describe seems really complex.
I would suggest to use Git (ex: github) and place the entirety of your code in there.