1👍
This is the type of thing that Django’s app structure is for. You could make the shared functionality a standalone pluggable app, managed as its own git repository. The projects that depend on it can include it in their requirements.txt and settings files. When you update the shared functionality, you increment the project version, and then update the requirements files.
Source:stackexchange.com