I am working on a Django project that is separated into 5 apps (each have 3-6 models). As a whole, this project is definitely something I would reuse in other projects, but it would only be useful if it included all the apps because they are intrinsically related.
Therefore, I want to package this project to make it reusable following the Django docs and Django cookiecutter django package. However, these examples show only how to package a single app.
From what I have read there are a few options:
- Make 5 packages
- Make one app with 30 models and convert
models.py
into a module - Make a package with 5 apps (Similar to how django-allauth is setup)
I am planning on using option 3 because I think option 1 is overkill and option 2 is considered bad practice (See this post and this post). The issue I see with option 3 is that then a project that uses this package would have to install all 5 apps in INSTALLED_APPS
like so:
INSTALLED_APPS = [
'project',
'project.app1',
'project.app2',...
]
Is there a way to avoid having to install all the apps in INSTALLED_APPS
if I package the project with 5 apps? Or is option 1 or 2 better for this use case?